mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-27 05:00:15 +00:00
23645707f1
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>
36 lines
853 B
Makefile
36 lines
853 B
Makefile
# The Sparc `long double' is a distinct type we support.
|
|
long-double-fcts = yes
|
|
|
|
pie-ccflag = -fPIE
|
|
no-pie-ccflag = -fno-PIE
|
|
|
|
ifeq ($(subdir),gmon)
|
|
sysdep_routines += sparc-mcount
|
|
endif
|
|
|
|
ifeq ($(subdir),db2)
|
|
CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_SPARC_GCC=1
|
|
endif
|
|
|
|
ifeq ($(subdir),csu)
|
|
CPPFLAGS-crti.S += -fPIC
|
|
CPPFLAGS-crtn.S += -fPIC
|
|
endif
|
|
|
|
ifeq ($(subdir),elf)
|
|
|
|
# Lazy binding on SPARC rewrites the PLT sequence. See the Solaris
|
|
# Linker and Libraries Guide, section SPARC: Procedure Linkage Table.
|
|
# <https://docs.oracle.com/cd/E19455-01/816-0559/chapter6-1236/index.html>
|
|
test-xfail-check-wx-segment = *
|
|
|
|
endif # $(subdir) == elf
|
|
|
|
# nscd uses atomic_spin_nop which in turn requires cpu_relax
|
|
ifeq ($(subdir),nscd)
|
|
routines += cpu_relax
|
|
endif
|
|
|
|
# The assembler on SPARC needs the -fPIC flag even when it's assembler code.
|
|
ASFLAGS-.os += -fPIC
|