[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