From 53362a4b0f8cb9bab0c23553b199e4a11ec7d4d7 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 1 Mar 2012 15:04:16 -0800 Subject: Remove sparc binutils GOTDATA checks in lieu of new minimum version requirement. * 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. --- sysdeps/sparc/crti.S | 6 ----- sysdeps/sparc/elf/configure | 42 +---------------------------- sysdeps/sparc/elf/configure.in | 32 +--------------------- sysdeps/sparc/sparc32/dl-machine.h | 7 ----- sysdeps/sparc/sparc32/elf/start.S | 12 --------- sysdeps/sparc/sparc32/fpu/w_sqrt.S | 6 ----- sysdeps/sparc/sparc32/fpu/w_sqrtf.S | 6 ----- sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S | 6 ----- sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S | 6 ----- sysdeps/sparc/sparc64/dl-machine.h | 7 ----- sysdeps/sparc/sparc64/elf/start.S | 12 --------- sysdeps/sparc/sparc64/fpu/w_sqrt.S | 6 ----- sysdeps/sparc/sparc64/fpu/w_sqrtf.S | 6 ----- 13 files changed, 2 insertions(+), 152 deletions(-) (limited to 'sysdeps/sparc') diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S index caed362293..7aa54537da 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 a2545403ef..3553444177 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 1a2f61a90c..ec683455c7 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 7ea97fbffd..1620ca54df 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 0426714c5e..1efa8e8393 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 e02fadf130..667c71c625 100644 --- a/sysdeps/sparc/sparc32/fpu/w_sqrt.S +++ b/sysdeps/sparc/sparc32/fpu/w_sqrt.S @@ -32,15 +32,9 @@ 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 diff --git a/sysdeps/sparc/sparc32/fpu/w_sqrtf.S b/sysdeps/sparc/sparc32/fpu/w_sqrtf.S index cf4c800624..5260bec373 100644 --- a/sysdeps/sparc/sparc32/fpu/w_sqrtf.S +++ b/sysdeps/sparc/sparc32/fpu/w_sqrtf.S @@ -31,15 +31,9 @@ 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 diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S index c084aa8335..ce7491e438 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt.S @@ -30,15 +30,9 @@ 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 diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S index 3de7f396c2..0e00b66964 100644 --- a/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S +++ b/sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf.S @@ -30,15 +30,9 @@ 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 diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h index 6bab5ce310..87655d28ad 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 50f2df2c7e..7924fb4828 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 11241a34b1..dd6039aa75 100644 --- a/sysdeps/sparc/sparc64/fpu/w_sqrt.S +++ b/sysdeps/sparc/sparc64/fpu/w_sqrt.S @@ -28,15 +28,9 @@ 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 diff --git a/sysdeps/sparc/sparc64/fpu/w_sqrtf.S b/sysdeps/sparc/sparc64/fpu/w_sqrtf.S index 9a5d556f36..1472e34552 100644 --- a/sysdeps/sparc/sparc64/fpu/w_sqrtf.S +++ b/sysdeps/sparc/sparc64/fpu/w_sqrtf.S @@ -28,15 +28,9 @@ 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 -- cgit 1.4.1