[uClibc-cvs] uClibc/libc/sysdeps/linux/i386 bsd-setjmp.S,1.1,1.2 clone.S,1.5,1.6 setjmp.S,1.9,1.10 syscall.S,1.2,1.3 vfork.S,1.3,1.4

Erik Andersen andersen at uclibc.org
Fri May 30 04:48:19 UTC 2003


Update of /var/cvs/uClibc/libc/sysdeps/linux/i386
In directory winder:/tmp/cvs-serv14565/libc/sysdeps/linux/i386

Modified Files:
	bsd-setjmp.S clone.S setjmp.S syscall.S vfork.S 
Log Message:
In a number of places we erroneously used tests such as '#ifdef PIC' when we
should instead have been testing for '#ifdef __PIC__'.  This resulted in
NON-PIC code getting mixed into the shared library.  Oops!!!
 -Erik


Index: bsd-setjmp.S
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/i386/bsd-setjmp.S,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- bsd-setjmp.S	30 Jan 2002 07:11:07 -0000	1.1
+++ bsd-setjmp.S	30 May 2003 04:47:44 -0000	1.2
@@ -42,7 +42,7 @@
 	/* Call __sigjmp_save.  */
 	pushl $1
 	pushl 8(%esp)
-#ifdef	PIC
+#ifdef	__PIC__
 	/* We cannot use the PLT, because it requires that %ebx be set, but
            we can't save and restore our caller's value.  Instead, we do an
            indirect jump through the GOT, using for the temporary register

Index: clone.S
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/i386/clone.S,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- clone.S	14 Nov 2001 02:26:48 -0000	1.5
+++ clone.S	30 May 2003 04:47:44 -0000	1.6
@@ -65,11 +65,11 @@
 CLONE_ERROR_LABEL:
 	negl    %eax
 	pushl   %eax
-#ifdef PIC
-	call	L(here)
-L(here):
+#ifdef __PIC__
+	call .Lhere
+.Lhere:
 	popl	%ebx
-	addl	$_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
+	addl	$_GLOBAL_OFFSET_TABLE_+[.- .Lhere  ], %ebx
 	call    __errno_location at PLT
 #else
 	call	__errno_location

Index: setjmp.S
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/i386/setjmp.S,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- setjmp.S	30 Jan 2002 07:11:07 -0000	1.9
+++ setjmp.S	30 May 2003 04:47:44 -0000	1.10
@@ -42,7 +42,7 @@
         movl %ebp, (3 *4)(%eax)  
 
 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
-#ifdef	PIC
+#ifdef	__PIC__
 	/* We cannot use the PLT, because it requires that %ebx be set, but
            we can't save and restore our caller's value.  Instead, we do an
            indirect jump through the GOT, using for the temporary register

Index: syscall.S
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/i386/syscall.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- syscall.S	16 Aug 2002 04:49:00 -0000	1.2
+++ syscall.S	30 May 2003 04:47:44 -0000	1.3
@@ -40,7 +40,7 @@
 	cmpl $-4095,%eax
 	jbe .Ldone
 
-#ifdef PIC
+#ifdef __PIC__
 	call Lhere
 Lhere:
 	popl %ebx
@@ -63,7 +63,7 @@
 	movl %eax,errno
 #endif /* __UCLIBC_HAS_THREADS__ */
 
-#endif /* PIC */
+#endif /* __PIC__ */
 
 	movl $-1,%eax
 	.p2align 4,,7

Index: vfork.S
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/i386/vfork.S,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- vfork.S	16 Aug 2002 04:49:00 -0000	1.3
+++ vfork.S	30 May 2003 04:47:44 -0000	1.4
@@ -12,13 +12,13 @@
 vfork:
 	popl %ecx
 	movl $190,%eax
-#ifdef PIC
+#ifdef __PIC__
 	pushl %ebx
 #endif
 #APP
 	int $0x80
 #NO_APP
-#ifdef PIC
+#ifdef __PIC__
 	popl %ebx
 #endif
 	cmpl $-4095,%eax
@@ -28,7 +28,7 @@
 .Lerror:
 	pushl %ecx
 
-#ifdef PIC
+#ifdef __PIC__
 	pushl %ebx
 	call .Lhere
 .Lhere:
@@ -53,7 +53,7 @@
 	movl %eax,errno
 #endif /* __UCLIBC_HAS_THREADS__ */
 
-#endif /* PIC */
+#endif /* __PIC__ */
 	
 	movl $-1,%eax
 	ret



More information about the uClibc-cvs mailing list