diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2021-12-08 11:21:26 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2021-12-13 08:08:59 +0530 |
commit | 23645707f12f2dd9d80b51effb2d9618a7b65565 (patch) | |
tree | 3c02ef1768200f574de3f62d3acb76b6d0b77264 /manual | |
parent | 556a6126f8764bc66d03368b5ac3e26631556559 (diff) | |
download | glibc-23645707f12f2dd9d80b51effb2d9618a7b65565.zip glibc-23645707f12f2dd9d80b51effb2d9618a7b65565.tar.gz glibc-23645707f12f2dd9d80b51effb2d9618a7b65565.tar.bz2 |
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 'manual')
-rw-r--r-- | manual/install.texi | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/manual/install.texi b/manual/install.texi index fce5155..b1afc56 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -146,15 +146,13 @@ Don't build shared libraries even if it is possible. Not all systems support shared libraries; you need ELF support and (currently) the GNU linker. -@item --enable-static-pie -Enable static position independent executable (static PIE) support. -Static PIE is similar to static executable, but can be loaded at any -address without help from a dynamic linker. All static programs as -well as static tests are built as static PIE, except for those marked -with no-pie. The resulting glibc can be used with the GCC option, --static-pie, which is available with GCC 8 or above, to create static -PIE. This option also implies that glibc programs and tests are created -as dynamic position independent executables (PIE) by default. +@item --disable-default-pie +Don't build glibc programs and the testsuite as position independent +executables (PIE). By default, glibc programs and tests are created as +position independent executables on targets that support it. If the toolchain +and architecture support it, static executables are built as static PIE and the +resulting glibc can be used with the GCC option, -static-pie, which is +available with GCC 8 or above, to create static PIE. @item --enable-cet @itemx --enable-cet=permissive |