Compile tst-prelink.c without PIE [BZ #21815]
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 4 Aug 2017 19:58:01 +0000 (12:58 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 4 Aug 2017 19:58:13 +0000 (12:58 -0700)
tst-prelink.c checks for conflict with GLOB_DAT relocation against stdio.
On i386, there is no GLOB_DAT relocation against stdio with PIE.  We
should compile tst-prelink.c without PIE.

[BZ #21815]
* elf/Makefile (CFLAGS-tst-prelink.c): New.
(LDFLAGS-tst-prelink): Likewise.

ChangeLog
elf/Makefile

index 6a50d23..8291f6e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2017-08-04  H.J. Lu  <hongjiu.lu@intel.com>
 
+       [BZ #21815]
+       * elf/Makefile (CFLAGS-tst-prelink.c): New.
+       (LDFLAGS-tst-prelink): Likewise.
+
+2017-08-04  H.J. Lu  <hongjiu.lu@intel.com>
+
        * sysdeps/unix/sysv/linux/i386/sysdep.h (I386_USE_SYSENTER):
        Define to I386_USE_SYSENTER to 0 or 1 if not defined.
        (ENTER_KERNEL): Check if I386_USE_SYSENTER is 1 and check PIC.
index 2956445..828daaa 100644 (file)
@@ -358,6 +358,9 @@ update-all-abi: update-all-abi-ld
 
 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)
 ifeq ($(run-built-tests),yes)
 tests-special += $(objpfx)tst-prelink-cmp.out
 endif