diff options
-rw-r--r-- | ChangeLog | 22 | ||||
-rw-r--r-- | config.h.in | 3 | ||||
-rw-r--r-- | sysdeps/sparc/crti.S | 6 | ||||
-rw-r--r-- | sysdeps/sparc/elf/configure | 42 | ||||
-rw-r--r-- | sysdeps/sparc/elf/configure.in | 32 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/dl-machine.h | 7 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/elf/start.S | 12 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/fpu/w_sqrt.S | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/fpu/w_sqrtf.S | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/dl-machine.h | 7 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/elf/start.S | 12 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/w_sqrt.S | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/w_sqrtf.S | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h | 26 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/brk.S | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 26 |
20 files changed, 28 insertions, 227 deletions
@@ -1,3 +1,25 @@ +2012-03-01 David S. Miller <davem@davemloft.net> + + * sysdeps/sparc/crti.S: Remove HAVE_BINUTILS_GOTDATA checks. + * sysdeps/sparc/sparc32/dl-machine.h: Likewise. + * sysdeps/sparc/sparc32/elf/start.S: Likewise. + * sysdeps/sparc/sparc32/fpu/w_sqrt.S: Likewise. + * sysdeps/sparc/sparc32/fpu/w_sqrtf.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S: Likewise. + * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S: Likewise. + * sysdeps/sparc/sparc64/dl-machine.h: Likewise. + * sysdeps/sparc/sparc64/elf/start.S: Likewise. + * sysdeps/sparc/sparc64/fpu/w_sqrt.S: Likewise. + * sysdeps/sparc/sparc64/fpu/w_sqrtf.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. + * config.h.in (HAVE_BINUTILS_GOTDATA): Delete. + * sysdeps/sparc/elf/configure.in: Remove binutils GOTDATA checks. + * sysdeps/sparc/elf/configure: Regenerated. + 2012-03-01 Joseph Myers <joseph@codesourcery.com> * configure.in (AS, LD): Require binutils 2.20 or later. diff --git a/config.h.in b/config.h.in index b503454..7e5f4d4 100644 --- a/config.h.in +++ b/config.h.in @@ -87,9 +87,6 @@ certain registers (CR0, MQ, CTR, LR) in asm statements. */ #undef BROKEN_PPC_ASM_CR0 -/* Defined on SPARC if as and ld both support GOTDATA relocations. */ -#undef HAVE_BINUTILS_GOTDATA - /* Defined on SPARC if GCC emits GOTDATA relocations. */ #undef HAVE_GCC_GOTDATA diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S index caed362..7aa5453 100644 --- a/sysdeps/sparc/crti.S +++ b/sysdeps/sparc/crti.S @@ -71,15 +71,9 @@ _init: save %sp, -STACKFRAME_SIZE, %sp #if PREINIT_FUNCTION_WEAK SETUP_PIC_REG(l7) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(PREINIT_FUNCTION), %g1 xor %g1, %gdop_lox10(PREINIT_FUNCTION), %g1 GOT_LOAD [%l7 + %g1], %g1, %gdop(PREINIT_FUNCTION) -#else - sethi %hi(PREINIT_FUNCTION), %g1 - or %g1, %lo(PREINIT_FUNCTION), %g1 - GOT_LOAD [%l7 + %g1], %g1 -#endif cmp %g1, 0 be 1f nop diff --git a/sysdeps/sparc/elf/configure b/sysdeps/sparc/elf/configure index a254540..3553444 100644 --- a/sysdeps/sparc/elf/configure +++ b/sysdeps/sparc/elf/configure @@ -137,45 +137,6 @@ if test $libc_cv_sparc_tls = no; then as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi -# Check for GOTDATA relocation support in assembler and linker. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc binutils GOTDATA reloc support" >&5 -$as_echo_n "checking for sparc binutils GOTDATA reloc support... " >&6; } -if ${libc_cv_sparc_gotdata+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.S <<\EOF - .data - .globl data -data: .word 0 - .text - .globl foo -foo: sethi %gdop_hix22(data), %g1 - xor %g1, %gdop_lox10(data), %g1 -#ifdef __arch64__ - ldx [%l7 + %g1], %g1, %gdop(data) -#else - ld [%l7 + %g1], %g1, %gdop(data) -#endif -EOF -if { ac_try='${CC-cc} -c $CFLAGS conftest.S 1>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - libc_cv_sparc_gotdata=yes -else - libc_cv_sparc_gotdata=no -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_gotdata" >&5 -$as_echo "$libc_cv_sparc_gotdata" >&6; } -if test $libc_cv_sparc_gotdata = yes; then - $as_echo "#define HAVE_BINUTILS_GOTDATA 1" >>confdefs.h - -fi - # Check for a GCC emitting GOTDATA relocations. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc gcc GOTDATA reloc support" >&5 $as_echo_n "checking for sparc gcc GOTDATA reloc support... " >&6; } @@ -210,8 +171,7 @@ if test $libc_cv_sparc_gcc_gotdata = yes; then fi -if test $libc_cv_sparc_gcc_gotdata = yes \ - && test $libc_cv_sparc_gotdata = yes; then +if test $libc_cv_sparc_gcc_gotdata = yes; then $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h fi diff --git a/sysdeps/sparc/elf/configure.in b/sysdeps/sparc/elf/configure.in index 1a2f61a..ec68345 100644 --- a/sysdeps/sparc/elf/configure.in +++ b/sysdeps/sparc/elf/configure.in @@ -46,35 +46,6 @@ if test $libc_cv_sparc_tls = no; then AC_MSG_ERROR([the assembler must support TLS]) fi -# Check for GOTDATA relocation support in assembler and linker. -AC_CACHE_CHECK(for sparc binutils GOTDATA reloc support, libc_cv_sparc_gotdata, [dnl -changequote(,)dnl -cat > conftest.S <<\EOF - .data - .globl data -data: .word 0 - .text - .globl foo -foo: sethi %gdop_hix22(data), %g1 - xor %g1, %gdop_lox10(data), %g1 -#ifdef __arch64__ - ldx [%l7 + %g1], %g1, %gdop(data) -#else - ld [%l7 + %g1], %g1, %gdop(data) -#endif -EOF -changequote([,])dnl -dnl -if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.S 1>&AS_MESSAGE_LOG_FD); then - libc_cv_sparc_gotdata=yes -else - libc_cv_sparc_gotdata=no -fi -rm -f conftest*]) -if test $libc_cv_sparc_gotdata = yes; then - AC_DEFINE(HAVE_BINUTILS_GOTDATA) -fi - # Check for a GCC emitting GOTDATA relocations. AC_CACHE_CHECK(for sparc gcc GOTDATA reloc support, libc_cv_sparc_gcc_gotdata, [dnl changequote(,)dnl @@ -99,7 +70,6 @@ if test $libc_cv_sparc_gcc_gotdata = yes; then AC_DEFINE(HAVE_GCC_GOTDATA) fi -if test $libc_cv_sparc_gcc_gotdata = yes \ - && test $libc_cv_sparc_gotdata = yes; then +if test $libc_cv_sparc_gcc_gotdata = yes; then AC_DEFINE(PI_STATIC_AND_HIDDEN) fi diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h index 7ea97fb..1620ca5 100644 --- a/sysdeps/sparc/sparc32/dl-machine.h +++ b/sysdeps/sparc/sparc32/dl-machine.h @@ -216,17 +216,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) The C function `_dl_start' is the real entry point; its return value is the user program's entry point. */ -#ifdef HAVE_BINUTILS_GOTDATA #define RTLD_GOT_ADDRESS(pic_reg, reg, symbol) \ "sethi %gdop_hix22(" #symbol "), " #reg "\n\t" \ "xor " #reg ", %gdop_lox10(" #symbol "), " #reg "\n\t" \ "ld [" #pic_reg " + " #reg "], " #reg ", %gdop(" #symbol ")" -#else -#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol) \ - "sethi %hi(" #symbol "), " #reg "\n\t" \ - "or " #reg ", %lo(" #symbol "), " #reg "\n\t" \ - "ld [" #pic_reg " + " #reg "], " #reg -#endif #define RTLD_START __asm__ ("\ .text\n\ diff --git a/sysdeps/sparc/sparc32/elf/start.S b/sysdeps/sparc/sparc32/elf/start.S index 0426714..1efa8e8 100644 --- a/sysdeps/sparc/sparc32/elf/start.S +++ b/sysdeps/sparc/sparc32/elf/start.S @@ -66,7 +66,6 @@ _start: or %o3, %lo(__libc_csu_init), %o3 or %o4, %lo(__libc_csu_fini), %o4 #else -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(main), %o0 sethi %gdop_hix22(__libc_csu_init), %o3 sethi %gdop_hix22(__libc_csu_fini), %o4 @@ -76,17 +75,6 @@ _start: ld [%l7 + %o0], %o0, %gdop(main) ld [%l7 + %o3], %o3, %gdop(__libc_csu_init) ld [%l7 + %o4], %o4, %gdop(__libc_csu_fini) -#else - sethi %hi(main), %o0 - sethi %hi(__libc_csu_init), %o3 - sethi %hi(__libc_csu_fini), %o4 - or %o0, %lo(main), %o0 - or %o3, %lo(__libc_csu_init), %o3 - or %o4, %lo(__libc_csu_fini), %o4 - ld [%l7 + %o0], %o0 - ld [%l7 + %o3], %o3 - ld [%l7 + %o4], %o4 -#endif #endif /* When starting a binary via the dynamic linker, %g1 contains the diff --git a/sysdeps/sparc/sparc32/fpu/w_sqrt.S b/sysdeps/sparc/sparc32/fpu/w_sqrt.S index e02fadf..667c71c 100644 --- a/sysdeps/sparc/sparc32/fpu/w_sqrt.S +++ b/sysdeps/sparc/sparc32/fpu/w_sqrt.S @@ -32,18 +32,12 @@ ENTRY (__sqrt) 1: #ifdef SHARED SETUP_PIC_REG_LEAF(o5, g1) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(_LIB_VERSION), %g1 xor %g1, %gdop_lox10(_LIB_VERSION), %g1 ld [%o5 + %g1], %g1, %gdop(_LIB_VERSION) #else sethi %hi(_LIB_VERSION), %g1 or %g1, %lo(_LIB_VERSION), %g1 - ld [%o5 + %g1], %g1 -#endif -#else - sethi %hi(_LIB_VERSION), %g1 - or %g1, %lo(_LIB_VERSION), %g1 #endif ld [%g1], %g1 cmp %g1, -1 diff --git a/sysdeps/sparc/sparc32/fpu/w_sqrtf.S b/sysdeps/sparc/sparc32/fpu/w_sqrtf.S index cf4c800..5260bec 100644 --- a/sysdeps/sparc/sparc32/fpu/w_sqrtf.S +++ b/sysdeps/sparc/sparc32/fpu/w_sqrtf.S @@ -31,18 +31,12 @@ ENTRY (__sqrtf) 1: #ifdef SHARED SETUP_PIC_REG_LEAF(o5, g1) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(_LIB_VERSION), %g1 xor %g1, %gdop_lox10(_LIB_VERSION), %g1 ld [%o5 + %g1], %g1, %gdop(_LIB_VERSION) #else sethi %hi(_LIB_VERSION), %g1 or %g1, %lo(_LIB_VERSION), %g1 - ld [%o5 + %g1], %g1 -#endif -#else - sethi %hi(_LIB_VERSION), %g1 - or %g1, %lo(_LIB_VERSION), %g1 #endif ld [%g1], %g1 cmp %g1, -1 diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S index c084aa8..ce7491e 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S @@ -30,18 +30,12 @@ ENTRY (__sqrt) 1: #ifdef SHARED SETUP_PIC_REG_LEAF(o5, g1) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(_LIB_VERSION), %g1 xor %g1, %gdop_lox10(_LIB_VERSION), %g1 ld [%o5 + %g1], %g1, %gdop(_LIB_VERSION) #else sethi %hi(_LIB_VERSION), %g1 or %g1, %lo(_LIB_VERSION), %g1 - ld [%o5 + %g1], %g1 -#endif -#else - sethi %hi(_LIB_VERSION), %g1 - or %g1, %lo(_LIB_VERSION), %g1 #endif ld [%g1], %g1 cmp %g1, -1 diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S index 3de7f39..0e00b66 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S @@ -30,18 +30,12 @@ ENTRY (__sqrtf) 1: #ifdef SHARED SETUP_PIC_REG_LEAF(o5, g1) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(_LIB_VERSION), %g1 xor %g1, %gdop_lox10(_LIB_VERSION), %g1 ld [%o5 + %g1], %g1, %gdop(_LIB_VERSION) #else sethi %hi(_LIB_VERSION), %g1 or %g1, %lo(_LIB_VERSION), %g1 - ld [%o5 + %g1], %g1 -#endif -#else - sethi %hi(_LIB_VERSION), %g1 - or %g1, %lo(_LIB_VERSION), %g1 #endif ld [%g1], %g1 cmp %g1, -1 diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h index 6bab5ce..87655d2 100644 --- a/sysdeps/sparc/sparc64/dl-machine.h +++ b/sysdeps/sparc/sparc64/dl-machine.h @@ -264,17 +264,10 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) The C function `_dl_start' is the real entry point; its return value is the user program's entry point. */ -#ifdef HAVE_BINUTILS_GOTDATA #define RTLD_GOT_ADDRESS(pic_reg, reg, symbol) \ "sethi %gdop_hix22(" #symbol "), " #reg "\n\t" \ "xor " #reg ", %gdop_lox10(" #symbol "), " #reg "\n\t" \ "ldx [" #pic_reg " + " #reg "], " #reg ", %gdop(" #symbol ")\n" -#else -#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol) \ - "sethi %hi(" #symbol "), " #reg "\n\t" \ - "or " #reg ", %lo(" #symbol "), " #reg "\n\t" \ - "ldx [" #pic_reg " + " #reg "], " #reg "\n" -#endif #define __S1(x) #x #define __S(x) __S1(x) diff --git a/sysdeps/sparc/sparc64/elf/start.S b/sysdeps/sparc/sparc64/elf/start.S index 50f2df2..7924fb4 100644 --- a/sysdeps/sparc/sparc64/elf/start.S +++ b/sysdeps/sparc/sparc64/elf/start.S @@ -67,7 +67,6 @@ _start: or %o3, %lo(__libc_csu_init), %o3 or %o4, %lo(__libc_csu_fini), %o4 #else -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(main), %o0 sethi %gdop_hix22(__libc_csu_init), %o3 sethi %gdop_hix22(__libc_csu_fini), %o4 @@ -77,17 +76,6 @@ _start: ldx [%l7 + %o0], %o0, %gdop(main) ldx [%l7 + %o3], %o3, %gdop(__libc_csu_init) ldx [%l7 + %o4], %o4, %gdop(__libc_csu_fini) -#else - sethi %hi(main), %o0 - sethi %hi(__libc_csu_init), %o3 - sethi %hi(__libc_csu_fini), %o4 - or %o0, %lo(main), %o0 - or %o3, %lo(__libc_csu_init), %o3 - or %o4, %lo(__libc_csu_fini), %o4 - ldx [%l7 + %o0], %o0 - ldx [%l7 + %o3], %o3 - ldx [%l7 + %o4], %o4 -#endif #endif /* When starting a binary via the dynamic linker, %g1 contains the diff --git a/sysdeps/sparc/sparc64/fpu/w_sqrt.S b/sysdeps/sparc/sparc64/fpu/w_sqrt.S index 11241a3..dd6039a 100644 --- a/sysdeps/sparc/sparc64/fpu/w_sqrt.S +++ b/sysdeps/sparc/sparc64/fpu/w_sqrt.S @@ -28,18 +28,12 @@ ENTRY (__sqrt) 1: #ifdef SHARED SETUP_PIC_REG_LEAF(o5, g1) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(_LIB_VERSION), %g1 xor %g1, %gdop_lox10(_LIB_VERSION), %g1 ldx [%o5 + %g1], %g1, %gdop(_LIB_VERSION) #else sethi %hi(_LIB_VERSION), %g1 or %g1, %lo(_LIB_VERSION), %g1 - ldx [%o5 + %g1], %g1 -#endif -#else - sethi %hi(_LIB_VERSION), %g1 - or %g1, %lo(_LIB_VERSION), %g1 #endif ld [%g1], %g1 cmp %g1, -1 diff --git a/sysdeps/sparc/sparc64/fpu/w_sqrtf.S b/sysdeps/sparc/sparc64/fpu/w_sqrtf.S index 9a5d556..1472e34 100644 --- a/sysdeps/sparc/sparc64/fpu/w_sqrtf.S +++ b/sysdeps/sparc/sparc64/fpu/w_sqrtf.S @@ -28,18 +28,12 @@ ENTRY (__sqrtf) 1: #ifdef SHARED SETUP_PIC_REG_LEAF(o5, g1) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(_LIB_VERSION), %g1 xor %g1, %gdop_lox10(_LIB_VERSION), %g1 ldx [%o5 + %g1], %g1, %gdop(_LIB_VERSION) #else sethi %hi(_LIB_VERSION), %g1 or %g1, %lo(_LIB_VERSION), %g1 - ldx [%o5 + %g1], %g1 -#endif -#else - sethi %hi(_LIB_VERSION), %g1 - or %g1, %lo(_LIB_VERSION), %g1 #endif ld [%g1], %g1 cmp %g1, -1 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S index 7246e89..0b3361b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S @@ -67,15 +67,9 @@ ENTRY (____longjmp_chk) or %o0, %lo(longjmp_msg), %o0 #else SETUP_PIC_REG(l7) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(longjmp_msg), %o0 xor %o0, %gdop_lox10(longjmp_msg), %o0 ld [%l7 + %o0], %o0, %gdop(longjmp_msg) -#else - sethi %hi(longjmp_msg), %o0 - or %o0, %lo(longjmp_msg), %o0 - ld [%l7 + %o0], %o0 -#endif #endif call HIDDEN_JUMPTARGET(__fortify_fail) nop diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h index 3d6042e..3424598 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h @@ -88,8 +88,7 @@ ENTRY(name); \ mov %g1, %o7; #else # if RTLD_PRIVATE_ERRNO -# ifdef HAVE_BINUTILS_GOTDATA -# define SYSCALL_ERROR_HANDLER \ +# define SYSCALL_ERROR_HANDLER \ 0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %gdop_hix22(rtld_errno), %g1; \ xor %g1, %gdop_lox10(rtld_errno), %g1;\ @@ -97,16 +96,6 @@ ENTRY(name); \ st %o0, [%g1]; \ jmp %o7 + 8; \ mov -1, %o0; -# else -# define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG_LEAF(o2,g1) \ - sethi %hi(rtld_errno), %g1; \ - or %g1, %lo(rtld_errno), %g1; \ - ld [%o2 + %g1], %g1; \ - st %o0, [%g1]; \ - jmp %o7 + 8; \ - mov -1, %o0; -# endif # elif defined _LIBC_REENTRANT # ifndef NOT_IN_libc @@ -123,8 +112,7 @@ ENTRY(name); \ jmp %o7 + 8; \ mov -1, %o0; # else -# ifdef HAVE_BINUTILS_GOTDATA -# define SYSCALL_ERROR_HANDLER \ +# define SYSCALL_ERROR_HANDLER \ 0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %gdop_hix22(errno), %g1;\ xor %g1, %gdop_lox10(errno), %g1;\ @@ -132,16 +120,6 @@ ENTRY(name); \ st %o0, [%g1]; \ jmp %o7 + 8; \ mov -1, %o0; -# else -# define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG_LEAF(o2,g1) \ - sethi %hi(errno), %g1; \ - or %g1, %lo(errno), %g1; \ - ld [%o2 + %g1], %g1; \ - st %o0, [%g1]; \ - jmp %o7 + 8; \ - mov -1, %o0; -# endif # endif /* _LIBC_REENTRANT */ #endif /* PIC */ diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S index 69cf5ac..9b4e1e7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S @@ -67,15 +67,9 @@ ENTRY (____longjmp_chk) or %o0, %lo(longjmp_msg), %o0 #else SETUP_PIC_REG(l7) -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(longjmp_msg), %o0 xor %o0, %gdop_lox10(longjmp_msg), %o0 ldx [%l7 + %o0], %o0, %gdop(longjmp_msg) -#else - sethi %hi(longjmp_msg), %o0 - or %o0, %lo(longjmp_msg), %o0 - ldx [%l7 + %o0], %o0 -#endif #endif call HIDDEN_JUMPTARGET(__fortify_fail) nop diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S index a89d877..14b2967 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S @@ -64,15 +64,9 @@ ENTRY (__brk) sethi %hi(__curbrk), %g1 or %g1, %lo(__curbrk), %g1 #else -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(__curbrk), %g1 xor %g1, %gdop_lox10(__curbrk), %g1 ldx [%l7 + %g1], %g1, %gdop(__curbrk) -#else - sethi %hi(__curbrk), %g1 - or %g1, %lo(__curbrk), %g1 - ldx [%l7 + %g1], %g1 -#endif #endif stx %o0, [%g1] mov %g0, %i0 @@ -89,15 +83,9 @@ ENTRY (__brk) sethi %hi(errno), %g1 or %g1, %lo(errno), %g1 #else -#ifdef HAVE_BINUTILS_GOTDATA sethi %gdop_hix22(errno), %g1 xor %g1, %gdop_lox10(errno), %g1 ldx [%l7 + %g1], %g1, %gdop(errno) -#else - sethi %hi(errno), %g1 - or %g1, %lo(errno), %g1 - ldx [%l7 + %g1], %g1 -#endif #endif st %o0, [%g1] #else diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index 33e1a41..1bf7597 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -95,8 +95,7 @@ ENTRY(name); \ mov %g1, %o7; #else # if RTLD_PRIVATE_ERRNO -# ifdef HAVE_BINUTILS_GOTDATA -# define SYSCALL_ERROR_HANDLER \ +# define SYSCALL_ERROR_HANDLER \ 0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %gdop_hix22(rtld_errno), %g1; \ xor %g1, %gdop_lox10(rtld_errno), %g1;\ @@ -104,16 +103,6 @@ ENTRY(name); \ st %o0, [%g1]; \ jmp %o7 + 8; \ mov -1, %o0; -# else -# define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG_LEAF(o2,g1) \ - sethi %hi(rtld_errno), %g1; \ - or %g1, %lo(rtld_errno), %g1; \ - ldx [%o2 + %g1], %g1; \ - st %o0, [%g1]; \ - jmp %o7 + 8; \ - mov -1, %o0; -# endif # elif defined _LIBC_REENTRANT # ifndef NOT_IN_libc @@ -130,8 +119,7 @@ ENTRY(name); \ jmp %o7 + 8; \ mov -1, %o0; # else -# ifdef HAVE_BINUTILS_GOTDATA -# define SYSCALL_ERROR_HANDLER \ +# define SYSCALL_ERROR_HANDLER \ 0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %gdop_hix22(errno), %g1;\ xor %g1, %gdop_lox10(errno), %g1;\ @@ -139,16 +127,6 @@ ENTRY(name); \ st %o0, [%g1]; \ jmp %o7 + 8; \ mov -1, %o0; -# else -# define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG_LEAF(o2,g1) \ - sethi %hi(errno), %g1; \ - or %g1, %lo(errno), %g1; \ - ldx [%o2 + %g1], %g1; \ - st %o0, [%g1]; \ - jmp %o7 + 8; \ - mov -1, %o0; -# endif # endif /* _LIBC_REENTRANT */ #endif /* PIC */ |