Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 21 Feb 2003 19:25:36 +0000 (19:25 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 21 Feb 2003 19:25:36 +0000 (19:25 +0000)
* sysdeps/x86_64/dl-machine.h (elf_machine_rela) <R_X86_64_PC32>:
Check for signed overflow, not unsigned.

2003-02-21  Jakub Jelinek  <jakub@redhat.com>

ChangeLog
linuxthreads/ChangeLog
linuxthreads/sysdeps/unix/sysv/linux/sparc/Makefile
linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile
sysdeps/x86_64/dl-machine.h

index 93d05ab23391e86220acb1d14e73a4fc6c3a6b8a..1e41ffbb468a03724083930cbfc1dada3e2afbb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-02-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/x86_64/dl-machine.h (elf_machine_rela) <R_X86_64_PC32>:
+       Check for signed overflow, not unsigned.
+
 2003-02-21  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/sparc/sparc64/elf/configure.in: New file.
index 26c0c2768777dbb31dc143343c36bebc41925422..bcd5ea1b009f333fe82824f01cedef16f618490e 100644 (file)
@@ -1,3 +1,13 @@
+2003-02-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Call
+       __fork instead of branching to it if BROKEN_SPARC_WDISP22.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
+       Fix typo.
+       * sysdeps/unix/sysv/linux/sparc/Makefile (specs): Add ./ prefix
+       to crti.o and crtn.o.
+       * sysdeps/unix/sysv/linux/x86_64/Makefile (specs): Likewise.
+
 2003-02-21  Roland McGrath  <roland@redhat.com>
 
        * Makefile (install-lib-ldscripts): New variable.
index 22b3ee6c7213148838f13ada35335dbb426ad60b..febed8c20eabbe82d4db3ba48838edc9b1e3e6e6 100644 (file)
@@ -6,5 +6,6 @@ before-compile += $(objpfx)specs
 generated += specs
 $(objpfx)specs:
        $(CC) $(CFLAGS) $(CPPFLAGS) -dumpspecs \
-         | sed 's,/usr/lib\(\|64\)/\(crt[in]\.o\),\2,g' > $@
+         | sed 's,\(/usr/lib\(\|64\)/\|^\|\([^/a-z]\)\)\(crt[in]\.o\),\3./\4,g' > $@.new
+       mv -f $@.new $@
 endif
index dff728a81aec560be35c04da067b233a08d398c3..5a96e7e2415acf683958ae4988dc9fcd50738268 100644 (file)
@@ -30,7 +30,7 @@
        .text;                                                                \
 ENTRY(name)                                                                  \
        ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1;                              \
-       brz,pn %g1, 1f;                                                       \
+       brnz,pn %g1, 1f;                                                      \
         mov SYS_ify(syscall_name), %g1;                                      \
        ta 0x6d;                                                              \
        bcs,pn %xcc, __syscall_error_handler;                                 \
index f7edf44678c1078ac02589163a75dc77bb937966..8a6d2771e8b9d74c463c02889a890f7523d4b4ca 100644 (file)
@@ -34,13 +34,16 @@ ENTRY(__vfork)
        mov     %o1, %o7
        or      %o2, %lo(__libc_pthread_functions), %o2
        ldx     [%o0 + %o2], %o2
-       ldx     [%o2], %o2
-       cmp     %o2, 0
-       bne     HIDDEN_JUMPTARGET(__fork)
+       ldx     [%o2], %o0
 #else
        .weak   pthread_create
        sethi   %hi(pthread_create), %o0
        or      %o0, %lo(pthread_create), %o0
+#endif
+#if defined SHARED && !defined BROKEN_SPARC_WDISP22
+       cmp     %o0, 0
+       bne     HIDDEN_JUMPTARGET(__fork)
+#else
        brnz,pn %o0, 1f
 #endif
         mov    __NR_vfork, %g1
@@ -50,7 +53,7 @@ ENTRY(__vfork)
        sub     %o1, 1, %o1
        retl
         and    %o0, %o1, %o0
-#ifndef SHARED
+#if !defined SHARED || defined BROKEN_SPARC_WDISP22
 1:     mov     %o7, %g1
        call    HIDDEN_JUMPTARGET(__fork)
         mov    %g1, %o7
index f5ad5084c477574e7a20ba47f9087e8e0cd220d8..28d2e22cd3254c12c5e32482e4ddd5e9b4b2668b 100644 (file)
@@ -7,6 +7,6 @@ before-compile += $(objpfx)specs
 generated += specs
 $(objpfx)specs:
        $(CC) $(CFLAGS) $(CPPFLAGS) -dumpspecs \
-       | sed 's,/usr/lib64/\(crt[in]\.o\),\1,g' > $@.new
+       | sed 's,\(/usr/lib\(\|64\)/\|^\|\([^/a-z]\)\)\(crt[in]\.o\),\3./\4,g' > $@.new
        mv -f $@.new $@
 endif
index afae50ac8027406a5fb567ee0cd4ce9b07dee352..94eb028c81e85979d5d1b6f14fd17318e8e1f3b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  x86-64 version.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>.
 
@@ -463,7 +463,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
          *(unsigned int *) reloc_addr = value + reloc->r_addend
            - (Elf64_Addr) reloc_addr;
          if (value + reloc->r_addend - (Elf64_Addr) reloc_addr
-             != (unsigned int)(value + reloc->r_addend - (Elf64_Addr) reloc_addr))
+             != (int)(value + reloc->r_addend - (Elf64_Addr) reloc_addr))
            {
              const char *strtab;