diff options
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | Makeconfig | 3 | ||||
-rw-r--r-- | elf/Makefile | 6 | ||||
-rw-r--r-- | gmon/Makefile | 2 |
4 files changed, 20 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 9d567b20bf..41ca4d27c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2017-12-19 H.J. Lu <hongjiu.lu@intel.com> + [BZ #22630] + * Makeconfig (link-pie-before-libc): Replace -pie with + $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie). + * elf/Makefile (LDFLAGS-tst-dlopen-aout): Removed. + (tst-dlopen-aout-no-pie): New. + (LDFLAGS-tst-prelink): Removed. + (tst-prelink-no-pie): New. + (LDFLAGS-tst-main1): Removed. + (tst-main1-no-pie): New. + * gmon/Makefile (LDFLAGS-tst-gmon): Removed. + (tst-gmon-no-pie): New. + +2017-12-19 H.J. Lu <hongjiu.lu@intel.com> + * manual/install.texi: Document that --enable-static-pie implies PIE. * INSTALL: Regenerated. diff --git a/Makeconfig b/Makeconfig index 80c498e33b..34bed9790f 100644 --- a/Makeconfig +++ b/Makeconfig @@ -413,7 +413,8 @@ link-extra-libs-tests = $(libsupport) # Command for linking PIE programs with the C library. ifndef +link-pie -+link-pie-before-libc = $(CC) -pie -Wl,-O1 -nostdlib -nostartfiles -o $@ \ ++link-pie-before-libc = $(CC) $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \ + -Wl,-O1 -nostdlib -nostartfiles -o $@ \ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \ $(firstword $(CRT-$(@F)) $(csu-objpfx)S$(start-installed-name)) \ diff --git a/elf/Makefile b/elf/Makefile index 47c3d23ed8..a987614b6f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -195,7 +195,7 @@ tests-internal += loadtest unload unload2 circleload1 \ tst-ptrguard1 tst-stackguard1 ifeq ($(build-hardcoded-path-in-tests),yes) tests += tst-dlopen-aout -LDFLAGS-tst-dlopen-aout = $(no-pie-ldflag) +tst-dlopen-aout-no-pie = yes endif test-srcs = tst-pathopt selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) @@ -369,7 +369,7 @@ ifeq ($(have-glob-dat-reloc),yes) tests += tst-prelink # Don't compile tst-prelink.c with PIE for GLOB_DAT relocation. CFLAGS-tst-prelink.c += -fno-pie -LDFLAGS-tst-prelink = $(no-pie-ldflag) +tst-prelink-no-pie = yes ifeq ($(run-built-tests),yes) tests-special += $(objpfx)tst-prelink-cmp.out endif @@ -1433,6 +1433,6 @@ $(objpfx)tst-debug1mod1.so: $(objpfx)testobj1.so $(objpfx)tst-main1: $(objpfx)tst-main1mod.so CRT-tst-main1 := $(csu-objpfx)crt1.o -LDFLAGS-tst-main1 = $(no-pie-ldflag) +tst-main1-no-pie = yes LDLIBS-tst-main1 = $(libsupport) tst-main1mod.so-no-z-defs = yes diff --git a/gmon/Makefile b/gmon/Makefile index 29e746723e..6d0c620b24 100644 --- a/gmon/Makefile +++ b/gmon/Makefile @@ -49,7 +49,7 @@ endif CFLAGS-mcount.c := -fno-omit-frame-pointer CFLAGS-tst-gmon.c := -fno-omit-frame-pointer -pg -LDFLAGS-tst-gmon := $(no-pie-ldflag) +tst-gmon-no-pie = yes CRT-tst-gmon := $(csu-objpfx)gcrt1.o tst-gmon-ENV := GMON_OUT_PREFIX=$(objpfx)tst-gmon.data ifeq ($(run-built-tests),yes) |