Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 11 Feb 2003 06:31:57 +0000 (06:31 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 11 Feb 2003 06:31:57 +0000 (06:31 +0000)
2003-02-10  Ulrich Drepper  <drepper@redhat.com>

* elf/Makefile (check-textrel-CFLAGS): Pass _XOPEN_SOURCE and
_BSD_SOURCE to compiler.
* elf/check-textrel.c (SWAP): Add parenthesis to avoid warnings.
Patches by Alan Modra.

16 files changed:
ChangeLog
elf/Makefile
elf/check-textrel.c
linuxthreads/ChangeLog
linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S
nptl/Banner

index d41458a..497d1b7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-02-10  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/Makefile (check-textrel-CFLAGS): Pass _XOPEN_SOURCE and
+       _BSD_SOURCE to compiler.
+       * elf/check-textrel.c (SWAP): Add parenthesis to avoid warnings.
+       Patches by Alan Modra.
+
 2003-02-08  Ulrich Drepper  <drepper@redhat.com>
 
        * io/ftwtest.c: Get current working directory before and after the
index 09ea948..56322f1 100644 (file)
@@ -601,7 +601,7 @@ $(objpfx)tst-array4.out: $(objpfx)tst-array4 $(objpfx)tst-array2dep.so
          $< > $@
        cmp $@ tst-array4.exp > /dev/null
 
-check-textrel-CFLAGS = -O
+check-textrel-CFLAGS = -O -Wall -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
 $(objpfx)check-textrel: check-textrel.c
        $(native-compile)
 
index 69210b2..ec97e4b 100644 (file)
@@ -1,5 +1,5 @@
 /* Check for text relocations in DSOs.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contribute by Ulrich Drepper <drepper@redhat.com>. 2002.
 
 # define __E(name, bits) Elf##bits##_##name
 # define SWAP(val) \
   ({ __typeof (val) __res;                                                   \
-     if ((ehdr.e_ident[EI_DATA] == ELFDATA2MSB && BYTE_ORDER == LITTLE_ENDIAN \
-         || ehdr.e_ident[EI_DATA] == ELFDATA2LSB && BYTE_ORDER == BIG_ENDIAN)\
+     if (((ehdr.e_ident[EI_DATA] == ELFDATA2MSB                                      \
+          && BYTE_ORDER == LITTLE_ENDIAN)                                    \
+         || (ehdr.e_ident[EI_DATA] == ELFDATA2LSB                            \
+             && BYTE_ORDER == BIG_ENDIAN))                                   \
         && sizeof (val) != 1)                                                \
        {                                                                     \
         if (sizeof (val) == 2)                                               \
index 3d21ec4..7a6047a 100644 (file)
@@ -1,3 +1,22 @@
+2003-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Check
+       pthread_create existance, not __pthread_fork.
+       * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
+       * sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork): Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
+       * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise.
+       Add .weak pthread_create.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Fix a typo.
+       Check pthread_create existance, not __pthread_fork.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Branch to
+       __fork whenever libpthread.so is loaded.
+
 2003-02-09  Andreas Jaeger  <aj@suse.de>
 
        * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h:
index 9002a3b..b4f35e1 100644 (file)
@@ -31,8 +31,8 @@ __LABEL(__vfork)
        ldq     t0, __libc_pthread_functions(gp) !gprel
        bne     t0, HIDDEN_JUMPTARGET (__fork) !samegp
 #else
-       .weak   __pthread_fork
-       ldq     t0, __pthread_fork(gp) !literal
+       .weak   pthread_create
+       ldq     t0, pthread_create(gp) !literal
        bne     t0, $do_fork
 #endif
 
index 95df133..c7a120d 100644 (file)
@@ -40,8 +40,8 @@ ENTRY (__vfork)
        addl    $_GLOBAL_OFFSET_TABLE_, %ecx
        cmpl    $0, __libc_pthread_functions@GOTOFF(%ecx)
 # else
-       .weak   __pthread_fork
-       movl    $__pthread_fork, %eax
+       .weak   pthread_create
+       movl    $pthread_create, %eax
        testl   %eax, %eax
 # endif
        jne     HIDDEN_JUMPTARGET (__fork)
index 5541edb..54aceda 100644 (file)
@@ -33,8 +33,8 @@ ENTRY(__vfork)
 #ifdef SHARED
        addl r14 = @gprel(__libc_pthread_functions#), gp;;
 #else
-       .weak   __pthread_fork
-       addl r14 = @ltoff(@fptr(__pthread_fork#)), gp;;
+       .weak   pthread_create
+       addl r14 = @ltoff(@fptr(pthread_create#)), gp;;
 #endif
        ld8 r14 = [r14];;
        cmp.ne p6, p7 = 0, r14
index 475bb6e..49b8a3c 100644 (file)
@@ -32,8 +32,8 @@ ENTRY (__vfork)
 #ifdef SHARED
        tstl    (__libc_pthread_functions@GOTPC, %pc)
 #else
-       .weak   __pthread_fork
-       movel   #__pthread_fork, %d0
+       .weak   pthread_create
+       movel   #pthread_create, %d0
 #endif
        jbne    HIDDEN_JUMPTARGET (__fork)
 
index e85f662..5054d5f 100644 (file)
@@ -39,9 +39,9 @@ ENTRY (__vfork)
        cmpwi   10,0
        bne-    HIDDEN_JUMPTARGET(__fork)
 # else
-       .weak   __pthread_fork
-       lis     9,__pthread_fork@ha
-       la      9,__pthread_fork@l(9)
+       .weak   pthread_create
+       lis     9,pthread_create@ha
+       la      9,pthread_create@l(9)
        cmpwi   9,0
        bne-    .Lhidden_fork
 # endif
index 0315e6e..6dfeca8 100644 (file)
    and the process ID of the new process to the old process.  */
 
 ENTRY (__vfork)
-       SINGLE_THREAD_P(%r1)
-       jne     0f
+       basr    %r1,0
+0:
+#ifdef SHARED
+       al      %r1,4f-0b(%r1)
+       l       %r1,0(%r1)
+       ltr     %r1,%r1
+#else
+       icm     %r1,15,4f-0b(%r1)
+#endif
+       jne     1f
 
        /* Do vfork system call.  */
        svc     SYS_ify (vfork)
@@ -40,13 +48,20 @@ ENTRY (__vfork)
 
        /* Normal return.  */
        br      %r14
-0:
-       basr    %r1,0
 1:
-       al      %r1,2f-1b(%r1)
-       br      %r1
+       basr    %r1,0
 2:
-       .long   HIDDEN_JUMPTARGET(__fork)-1b
+       al      %r1,3f-2b(%r1)
+       br      %r1
+3:
+       .long   HIDDEN_JUMPTARGET(__fork)-2b
+4:
+#ifdef SHARED
+       .long   __libc_pthread_functions-0b
+#else
+       .weak   pthread_create
+       .long   pthread_create
+#endif
 PSEUDO_END(__vfork)
 
 libc_hidden_def (__vfork)
index d2faaa1..199f001 100644 (file)
@@ -31,8 +31,8 @@ ENTRY (__vfork)
        larl    %r1,__libc_pthread_functions
        lg      %r1,0(%r1)
 #else
-       .weak   __pthread_fork
-       larl    %r1,__pthread_fork
+       .weak   pthread_create
+       larl    %r1,pthread_create
 #endif
        ltgr    %r1,%r1
        jgne    HIDDEN_JUMPTARGET(__fork)
index b118ca3..07589c1 100644 (file)
@@ -30,7 +30,7 @@ ENTRY (__vfork)
        mov.l   .Lpthread_func, r0
        mov.l   @(r0,r12), r0
 #else
-       mov.l   .Lpthread_fork, r0
+       mov.l   .Lpthread_create, r0
 #endif
        tst     r0, r0
        bf      .Lhidden_fork
@@ -53,8 +53,9 @@ ENTRY (__vfork)
 .Lpthread_func:
        .long   __libc_pthread_functions@GOTOFF
 #else
-.Lpthread_fork:
-       .long   __pthread_fork
+.Lpthread_create:
+       .weak   pthread_create
+       .long   pthread_create
 #endif
 
 .Lhidden_fork: 
index 2da7703..132da67 100644 (file)
@@ -23,7 +23,7 @@
 #ifdef SHARED
 .LLGETPC0:
        retl
-        addl   %o7, %o0, %o0
+        add    %o7, %o0, %o0
 #endif
 ENTRY(__vfork)
 #ifdef SHARED
@@ -38,9 +38,9 @@ ENTRY(__vfork)
        ld      [%o2], %o2
        cmp     %o2, 0
 #else
-       .weak   __pthread_fork
-       sethi   %hi(__pthread_fork), %o0
-       orcc    %o0, %lo(__pthread_fork), %o0
+       .weak   pthread_create
+       sethi   %hi(pthread_create), %o0
+       orcc    %o0, %lo(pthread_create), %o0
 #endif
 #if defined SHARED && !defined BROKEN_SPARC_WDISP22
        bne     HIDDEN_JUMPTARGET(__fork)
@@ -48,7 +48,7 @@ ENTRY(__vfork)
        bne     1f
 #endif
         mov    __NR_vfork, %g1
-       ta 0x10;
+       ta      0x10
        bcs     __syscall_error_handler
         nop
        sub     %o1, 1, %o1
index 8b85d76..f7edf44 100644 (file)
@@ -22,7 +22,7 @@
 #ifdef SHARED
 .LLGETPC0:
        retl
-        addl   %o7, %o0, %o0
+        add    %o7, %o0, %o0
 #endif
 ENTRY(__vfork)
 #ifdef SHARED
@@ -38,9 +38,9 @@ ENTRY(__vfork)
        cmp     %o2, 0
        bne     HIDDEN_JUMPTARGET(__fork)
 #else
-       .weak   __pthread_fork
-       sethi   %hi(__pthread_fork), %o0
-       or      %o0, %lo(__pthread_fork), %o0
+       .weak   pthread_create
+       sethi   %hi(pthread_create), %o0
+       or      %o0, %lo(pthread_create), %o0
        brnz,pn %o0, 1f
 #endif
         mov    __NR_vfork, %g1
index 22e2d86..9198c51 100644 (file)
@@ -30,8 +30,8 @@ ENTRY (__vfork)
 #ifdef SHARED
        cmpq    $0, __libc_pthread_functions(%rip)
 #else
-       .weak   __pthread_fork
-       movq    $__pthread_fork, %rax
+       .weak   pthread_create
+       movq    $pthread_create, %rax
        testq   %rax, %rax
 #endif
        jne     HIDDEN_JUMPTARGET (__fork)
index 4732444..7f022b3 100644 (file)
@@ -1 +1 @@
-NPTL 0.20 by Ulrich Drepper
+NPTL 0.21 by Ulrich Drepper