about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-06-25 02:37:04 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-06-25 02:49:53 -0700
commitcc08749b2d1c68284b25b157fbbe1ff219495cae (patch)
tree0b0f104c2866770c1983e521184869f3829b40f6 /elf
parent45a8f0e6629d7772b9fa1aef0389bc51a094424d (diff)
downloadglibc-cc08749b2d1c68284b25b157fbbe1ff219495cae.tar.gz
glibc-cc08749b2d1c68284b25b157fbbe1ff219495cae.tar.xz
glibc-cc08749b2d1c68284b25b157fbbe1ff219495cae.zip
Support compilers defaulting to PIE
To support building glibc with GCC 6 configured with --enable-default-pie,
which generates PIE by default, we need to build programs as PIE.  But
elf/tst-dlopen-aout must not be built as PIE since it tests dlopen on
ET_EXEC file and PIE is ET_DYN.

	[BZ #17841]
	* Makeconfig (no-pie-ldflag): New.
	(+link): Set to $(+link-pie) if default to PIE.
	(+link-tests): Set to $(+link-pie-tests) if default to PIE.
	* config.make.in (build-pie-default): New.
	* configure.ac (libc_cv_pie_default): New.  Set to yes if -fPIE
	is default.  AC_SUBST.
	* configure: Regenerated.
	* elf/Makefile (LDFLAGS-tst-dlopen-aout): New.
Diffstat (limited to 'elf')
-rw-r--r--elf/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/elf/Makefile b/elf/Makefile
index 4ea3ccf441..f21276c006 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -151,6 +151,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
 #	 reldep9
 ifeq ($(build-hardcoded-path-in-tests),yes)
 tests += tst-dlopen-aout
+LDFLAGS-tst-dlopen-aout = $(no-pie-ldflag)
 endif
 test-srcs = tst-pathopt
 selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)