aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/hppa
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@sourceware.org>2021-12-08 11:21:26 +0530
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2021-12-13 08:08:59 +0530
commit23645707f12f2dd9d80b51effb2d9618a7b65565 (patch)
tree3c02ef1768200f574de3f62d3acb76b6d0b77264 /sysdeps/hppa
parent556a6126f8764bc66d03368b5ac3e26631556559 (diff)
downloadglibc-23645707f12f2dd9d80b51effb2d9618a7b65565.tar
glibc-23645707f12f2dd9d80b51effb2d9618a7b65565.tar.gz
glibc-23645707f12f2dd9d80b51effb2d9618a7b65565.tar.bz2
glibc-23645707f12f2dd9d80b51effb2d9618a7b65565.zip
Replace --enable-static-pie with --disable-default-pie
Build glibc programs and tests as PIE by default and enable static-pie automatically if the architecture and toolchain supports it. Also add a new configuration option --disable-default-pie to prevent building programs as PIE. Only the following architectures now have PIE disabled by default because they do not work at the moment. hppa, ia64, alpha and csky don't work because the linker is unable to handle a pcrel relocation generated from PIE objects. The microblaze compiler is currently failing with an ICE. GNU hurd tries to enable static-pie, which does not work and hence fails. All these targets have default PIE disabled at the moment and I have left it to the target maintainers to enable PIE on their targets. build-many-glibcs runs clean for all targets. I also tested x86_64 on Fedora and Ubuntu, to verify that the default build as well as --disable-default-pie work as expected with both system toolchains. Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'sysdeps/hppa')
-rw-r--r--sysdeps/hppa/configure7
-rw-r--r--sysdeps/hppa/configure.ac5
2 files changed, 12 insertions, 0 deletions
diff --git a/sysdeps/hppa/configure b/sysdeps/hppa/configure
index 2cfe6cbea1..cf5acf966d 100644
--- a/sysdeps/hppa/configure
+++ b/sysdeps/hppa/configure
@@ -30,3 +30,10 @@ $as_echo "$libc_cv_asm_line_sep" >&6; }
cat >>confdefs.h <<_ACEOF
#define ASM_LINE_SEP $libc_cv_asm_line_sep
_ACEOF
+
+
+# PIE builds fail on binutils 2.37 and earlier, see:
+# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
+$as_echo "#define PIE_UNSUPPORTED 1" >>confdefs.h
+
+# work around problem with autoconf and empty lines at the end of files
diff --git a/sysdeps/hppa/configure.ac b/sysdeps/hppa/configure.ac
index 1ec417b947..3e1c35bbd9 100644
--- a/sysdeps/hppa/configure.ac
+++ b/sysdeps/hppa/configure.ac
@@ -19,3 +19,8 @@ else
fi
rm -f conftest*])
AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
+
+# PIE builds fail on binutils 2.37 and earlier, see:
+# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
+AC_DEFINE(PIE_UNSUPPORTED)
+# work around problem with autoconf and empty lines at the end of files