diff options
-rw-r--r-- | ChangeLog | 17 | ||||
-rwxr-xr-x | configure | 92 | ||||
-rw-r--r-- | configure.ac | 67 | ||||
-rw-r--r-- | sysdeps/aarch64/preconfigure | 8 | ||||
-rw-r--r-- | sysdeps/alpha/preconfigure | 3 | ||||
-rw-r--r-- | sysdeps/arm/preconfigure | 8 | ||||
-rw-r--r-- | sysdeps/arm/preconfigure.ac | 8 | ||||
-rw-r--r-- | sysdeps/ia64/preconfigure | 3 | ||||
-rw-r--r-- | sysdeps/tile/preconfigure | 5 |
9 files changed, 17 insertions, 194 deletions
diff --git a/ChangeLog b/ChangeLog index 027bf9df1a..510e78ac0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,22 @@ 2014-06-27 Joseph Myers <joseph@codesourcery.com> + * configure.ac (libc_commonpagesize): Remove variable. + (libc_relro_required): Likewise. + (libc_cv_z_relro): Remove configure test. + * configure: Regenerated. + * sysdeps/aarch64/preconfigure (libc_commonpagesize): Do not set + variable. + (libc_relro_required): Likewise. + * sysdeps/alpha/preconfigure (libc_commonpagesize): Likewise. + (libc_relro_required): Likewise. + * sysdeps/arm/preconfigure.ac (libc_commonpagesize): Likewise. + (libc_relro_required): Likewise. + * sysdeps/arm/preconfigure: Regenerated. + * sysdeps/ia64/preconfigure: Remove file. + * sysdeps/tile/preconfigure (libc_commonpagesize): Do not set + variable. + (libc_relro_required): Likewise. + [BZ #16561] [BZ #16562] * sysdeps/ieee754/dbl-64/e_jn.c: Include <float.h>. diff --git a/configure b/configure index ea44f64dc5..c8d2967f9e 100755 --- a/configure +++ b/configure @@ -5940,98 +5940,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5 $as_echo "$libc_linker_feature" >&6; } -# Add-on fragments can set these for other machines. -libc_commonpagesize=${libc_commonpagesize:-no} -libc_relro_required=${libc_relro_required:-no} -case "$base_machine" in - i[34567]86 | x86_64 | powerpc* | s390*) - libc_commonpagesize=0x1000 - libc_relro_required=yes - ;; - sparc*) - libc_commonpagesize=0x2000 - libc_relro_required=yes - ;; -esac - -if test $libc_commonpagesize != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -z relro option" >&5 -$as_echo_n "checking for -z relro option... " >&6; } -if ${libc_cv_z_relro+:} false; then : - $as_echo_n "(cached) " >&6 -else - libc_cv_z_relro=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int _start (void) { return 42; } -extern void _exit (int); -/* Since these pointers are const, they should go in rodata. - Since they refer to functions that have to be resolved by - dynamic linking, they should instead go in RELRO data. */ -const void *const relro[] = { &_start, &_exit, 0 }; -/* GNU ld fails to produce RELRO data when it's very small and there is no - normal writable data following it, or if only uninitialized (.bss) data - follows it, or only very small writable data. */ -int data[0x10000] = { 1, }; - -_ACEOF - cat > conftest.awk <<\EOF -BEGIN { - result = "no" - commonpagesize = strtonum(commonpagesize) -} -{ print "LINE:", $0 > "/dev/stderr" } -$1 == "GNU_RELRO" { - vaddr = strtonum($3) - memsz = strtonum($6) - end = vaddr + memsz - printf "vaddr %#x memsz %#x end %#x commonpagesize %#x\n", \ - vaddr, memsz, end, commonpagesize > "/dev/stderr" - result = (end % commonpagesize == 0) ? "yes" : "broken" -} -END { print result } -EOF - { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS - -fPIC -shared -o conftest.so conftest.c - -nostartfiles -nostdlib - -Wl,-z,relro 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; }; } && - { ac_try='$READELF -Wl conftest.so > conftest.ph' - { { 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; }; } && - { ac_try=' - $AWK -v commonpagesize=$libc_commonpagesize -f conftest.awk - conftest.ph > conftest.cps - ' - { { 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; }; } && - libc_cv_z_relro=`cat conftest.cps 2>&5` - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_relro" >&5 -$as_echo "$libc_cv_z_relro" >&6; } - if { test "x$libc_relro_required" = xyes && - test "x$libc_cv_z_relro" != xyes - } - then - as_fn_error $? "linker with -z relro support required" "$LINENO" 5 - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing architecture parameter to check for working -z relro" >&5 -$as_echo "$as_me: WARNING: missing architecture parameter to check for working -z relro" >&2;} -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Bgroup option" >&5 $as_echo_n "checking for -Bgroup option... " >&6; } if ${libc_cv_Bgroup+:} false; then : diff --git a/configure.ac b/configure.ac index f8d78608c0..566ecb276d 100644 --- a/configure.ac +++ b/configure.ac @@ -1342,73 +1342,6 @@ LIBC_LINKER_FEATURE([-z initfirst], [-Wl,--enable-new-dtags,-z,initfirst], [libc_cv_z_initfirst=yes], [AC_MSG_ERROR(linker with -z initfirst support required)]) -# Add-on fragments can set these for other machines. -libc_commonpagesize=${libc_commonpagesize:-no} -libc_relro_required=${libc_relro_required:-no} -case "$base_machine" in - i[[34567]]86 | x86_64 | powerpc* | s390*) - libc_commonpagesize=0x1000 - libc_relro_required=yes - ;; - sparc*) - libc_commonpagesize=0x2000 - libc_relro_required=yes - ;; -esac - -if test $libc_commonpagesize != no; then - AC_CACHE_CHECK(for -z relro option, - libc_cv_z_relro, [dnl - libc_cv_z_relro=no - AC_LANG_CONFTEST([AC_LANG_SOURCE([[ -int _start (void) { return 42; } -extern void _exit (int); -/* Since these pointers are const, they should go in rodata. - Since they refer to functions that have to be resolved by - dynamic linking, they should instead go in RELRO data. */ -const void *const relro[] = { &_start, &_exit, 0 }; -/* GNU ld fails to produce RELRO data when it's very small and there is no - normal writable data following it, or if only uninitialized (.bss) data - follows it, or only very small writable data. */ -int data[0x10000] = { 1, }; -]])]) - cat > conftest.awk <<\EOF -BEGIN { - result = "no" - commonpagesize = strtonum(commonpagesize) -} -{ print "LINE:", $0 > "/dev/stderr" } -$1 == "GNU_RELRO" { - vaddr = strtonum($3) - memsz = strtonum($6) - end = vaddr + memsz - printf "vaddr %#x memsz %#x end %#x commonpagesize %#x\n", \ - vaddr, memsz, end, commonpagesize > "/dev/stderr" - result = (end % commonpagesize == 0) ? "yes" : "broken" -} -END { print result } -EOF - AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS - -fPIC -shared -o conftest.so conftest.c - -nostartfiles -nostdlib - -Wl,-z,relro 1>&AS_MESSAGE_LOG_FD]) && - AC_TRY_COMMAND([$READELF -Wl conftest.so > conftest.ph]) && - AC_TRY_COMMAND([ - $AWK -v commonpagesize=$libc_commonpagesize -f conftest.awk - conftest.ph > conftest.cps - ]) && - libc_cv_z_relro=`cat conftest.cps 2>&AS_MESSAGE_LOG_FD` - rm -f conftest*]) - if { test "x$libc_relro_required" = xyes && - test "x$libc_cv_z_relro" != xyes - } - then - AC_MSG_ERROR(linker with -z relro support required) - fi -else - AC_MSG_WARN([missing architecture parameter to check for working -z relro]) -fi - AC_CACHE_CHECK(for -Bgroup option, libc_cv_Bgroup, [dnl cat > conftest.c <<EOF diff --git a/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure index 720c1d7dae..d9bd1f8558 100644 --- a/sysdeps/aarch64/preconfigure +++ b/sysdeps/aarch64/preconfigure @@ -4,11 +4,3 @@ aarch64*) machine=aarch64 ;; esac - -case "$machine" in -aarch64*) - # Parameters to allow auto-detection of -z relro. - libc_commonpagesize=0x1000 - libc_relro_required=yes - ;; -esac diff --git a/sysdeps/alpha/preconfigure b/sysdeps/alpha/preconfigure index 6412a136f4..cb02cffc3a 100644 --- a/sysdeps/alpha/preconfigure +++ b/sysdeps/alpha/preconfigure @@ -1,6 +1,3 @@ case "$machine" in alpha*) base_machine=alpha machine=alpha/$machine - # Parameters to allow auto-detection of -z relro. - libc_commonpagesize=0x2000 - libc_relro_required=yes ;; esac diff --git a/sysdeps/arm/preconfigure b/sysdeps/arm/preconfigure index 74869b10a8..b3124edae2 100644 --- a/sysdeps/arm/preconfigure +++ b/sysdeps/arm/preconfigure @@ -61,11 +61,3 @@ $as_echo "$as_me: WARNING: arm/preconfigure: Did not find ARM architecture type; machine=arm/$machine esac - -case "$machine" in -arm*) - # Parameters to allow auto-detection of -z relro. - libc_commonpagesize=0x1000 - libc_relro_required=yes - ;; -esac diff --git a/sysdeps/arm/preconfigure.ac b/sysdeps/arm/preconfigure.ac index 29a260c30b..39c86218aa 100644 --- a/sysdeps/arm/preconfigure.ac +++ b/sysdeps/arm/preconfigure.ac @@ -56,11 +56,3 @@ arm*) machine=arm/$machine esac - -case "$machine" in -arm*) - # Parameters to allow auto-detection of -z relro. - libc_commonpagesize=0x1000 - libc_relro_required=yes - ;; -esac diff --git a/sysdeps/ia64/preconfigure b/sysdeps/ia64/preconfigure deleted file mode 100644 index 76cb729fcf..0000000000 --- a/sysdeps/ia64/preconfigure +++ /dev/null @@ -1,3 +0,0 @@ -case "$machine" in -ia64*) libc_commonpagesize=0x4000 ;; -esac diff --git a/sysdeps/tile/preconfigure b/sysdeps/tile/preconfigure index 9dba5b1040..dfe050cc6d 100644 --- a/sysdeps/tile/preconfigure +++ b/sysdeps/tile/preconfigure @@ -10,8 +10,3 @@ case "$machine" in machine=tile/tilegx/tilegx32 fi ;; esac -case "$machine" in - tile*) - libc_commonpagesize=0x10000 - libc_relro_required=yes ;; -esac |