OSDN Git Service

In a number of places we erroneously used tests such as '#ifdef PIC' when we
authorEric Andersen <andersen@codepoet.org>
Fri, 30 May 2003 04:47:47 +0000 (04:47 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 30 May 2003 04:47:47 +0000 (04:47 -0000)
should instead have been testing for '#ifdef __PIC__'.  This resulted in
NON-PIC code getting mixed into the shared library.  Oops!!!
 -Erik

14 files changed:
Makefile
libc/sysdeps/linux/alpha/brk.S
libc/sysdeps/linux/i386/bsd-setjmp.S
libc/sysdeps/linux/i386/clone.S
libc/sysdeps/linux/i386/setjmp.S
libc/sysdeps/linux/i386/syscall.S
libc/sysdeps/linux/i386/vfork.S
libc/sysdeps/linux/mips/syscall.S
libc/sysdeps/linux/powerpc/mcount.S
libpthread/linuxthreads/cancel.c
libpthread/linuxthreads/oldsemaphore.c
libpthread/linuxthreads/pthread.c
libpthread/linuxthreads/weaks.c
libpthread/linuxthreads/wrapsyscall.c

index 752a475..e90db67 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -151,7 +151,7 @@ headers: include/bits/uClibc_config.h
            set -e; \
            echo " "; \
            echo "The path '$(KERNEL_SOURCE)/include/asm' doesn't exist."; \
-           echo "I bet you didn't set KERNEL_SOURCE, TARGET_ARCH or UCLIBC_HAS_MMU"; \
+           echo "I bet you did not set KERNEL_SOURCE, TARGET_ARCH or UCLIBC_HAS_MMU"; \
            echo "correctly when you configured uClibc.  Please fix these settings."; \
            echo " "; \
            false; \
index aa8db2b..913b41b 100644 (file)
@@ -25,7 +25,7 @@
 #define _ERRNO_H
 #include <bits/errno.h>
 
-#ifdef PIC
+#ifdef __PIC__
 .section .bss
        .align 3
        .globl __curbrk
index 93ae2ea..c075bad 100644 (file)
@@ -42,7 +42,7 @@ setjmp:
        /* 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 c52bb7f..93183d2 100644 (file)
@@ -65,11 +65,11 @@ __clone:
 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@PLT
 #else
        call    __errno_location
index debef70..ef9deeb 100644 (file)
@@ -42,7 +42,7 @@ __sigsetjmp:
         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 a70a997..69cafd4 100644 (file)
@@ -40,7 +40,7 @@ syscall:
        cmpl $-4095,%eax
        jbe .Ldone
 
-#ifdef PIC
+#ifdef __PIC__
        call Lhere
 Lhere:
        popl %ebx
@@ -63,7 +63,7 @@ Lhere:
        movl %eax,errno
 #endif /* __UCLIBC_HAS_THREADS__ */
 
-#endif /* PIC */
+#endif /* __PIC__ */
 
        movl $-1,%eax
        .p2align 4,,7
index 176f25c..e2d8705 100644 (file)
 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 @@ vfork:
 .Lerror:
        pushl %ecx
 
-#ifdef PIC
+#ifdef __PIC__
        pushl %ebx
        call .Lhere
 .Lhere:
@@ -53,7 +53,7 @@ vfork:
        movl %eax,errno
 #endif /* __UCLIBC_HAS_THREADS__ */
 
-#endif /* PIC */
+#endif /* __PIC__ */
        
        movl $-1,%eax
        ret
index c197a25..b270e31 100644 (file)
@@ -20,7 +20,7 @@
 #include <asm/asm.h>
 #include <asm/regdef.h>
 
-#ifdef PIC
+#ifdef __PIC__
        .option pic2
 #endif
 .text
index a9e3677..303a0dd 100644 (file)
@@ -69,7 +69,7 @@ _mcount:
        stw     r10,40(r1)
        stw     r4, 44(r1)
        stw     r5,  8(r1)
-#ifdef PIC
+#ifdef __PIC__
        bl      __mcount_internal@plt
 #else
        bl      __mcount_internal
index 42484bb..1356348 100644 (file)
@@ -175,7 +175,7 @@ void __pthread_perform_cleanup(void)
 #endif
 }
 
-#ifndef PIC
+#ifndef __PIC__
 /* We need a hook to force the cancelation wrappers to be linked in when
    static libpthread is used.  */
 extern const int __pthread_provide_wrappers;
index a634bad..225af50 100644 (file)
@@ -224,7 +224,7 @@ static void sem_restart_list(pthread_descr waiting)
   }
 }
 
-#if defined PIC && DO_VERSIONING
+#if defined __PIC__ && DO_VERSIONING
 symbol_version (__old_sem_init, sem_init, GLIBC_2.0);
 symbol_version (__old_sem_wait, sem_wait, GLIBC_2.0);
 symbol_version (__old_sem_trywait, sem_trywait, GLIBC_2.0);
index 9987c82..22e3f6a 100644 (file)
@@ -1005,7 +1005,7 @@ void __pthread_message(char * fmt, ...)
 #endif
 
 
-#ifndef PIC
+#ifndef __PIC__
 /* We need a hook to force the cancelation wrappers to be linked in when
    static libpthread is used.  */
 extern const int __pthread_provide_wrappers;
index 80ee111..67f1df5 100644 (file)
@@ -30,7 +30,7 @@ extern void __pthread_return_void __P ((void));
  */
 
 /* Those are pthread functions which return 0 if successful. */
-//#if defined __HAVE_ELF__ && defined PIC && defined DO_VERSIONING
+//#if defined __HAVE_ELF__ && defined __PIC__ && defined DO_VERSIONING
 //weak_alias (__pthread_return_0, __libc_pthread_attr_init_2_0)
 //symbol_version (__libc_pthread_attr_init_2_0, pthread_attr_init, GLIBC_2.0);
 //weak_alias (__pthread_return_0, __libc_pthread_attr_init_2_1)
index fa5b24d..6b8a00b 100644 (file)
@@ -34,7 +34,7 @@
 #include <sys/syscall.h>
 
 
-#ifndef PIC
+#ifndef __PIC__
 /* We need a hook to force this file to be linked in when static
    libpthread is used.  */
 const int __pthread_provide_wrappers = 0;