Blame SOURCES/gdb-runtest-pie-override.patch

4a80f0
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
4a80f0
From: Fedora GDB patches <invalid@email.com>
4a80f0
Date: Fri, 27 Oct 2017 21:07:50 +0200
4a80f0
Subject: gdb-runtest-pie-override.patch
4a80f0
4a80f0
;; Hack for proper PIE run of the testsuite.
4a80f0
;;=fedoratest
4a80f0
4a80f0
make check//unix/-fPIE/-pie RUNTESTFLAGS=solib-display.exp
4a80f0
4a80f0
gcc -fpic -c  -fPIE -pie -o x.o x.c
4a80f0
/usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../../lib64/Scrt1.o: In function `_start':
4a80f0
(.text+0x20): undefined reference to `main'
4a80f0
4a80f0
=> Change the order for overrides.
4a80f0
4a80f0
One has to also use -fPIC rather than -fPIE, -fPIC is stronger.
4a80f0
4a80f0
The correct way would be:
4a80f0
make check//unix RUNTESTFLAGS='CC_FOR_TARGET=gcc\ -fPIC\ -pie CXX_FOR_TARGET=g++\ -fPIC\ -pie solib-display.exp'
4a80f0
4a80f0
But there is a problem with testsuite.unix non-unique subdir name and also
4a80f0
a problem with make -j parallelization of the testsuite.
4a80f0
4a80f0
diff --git a/gdb/testsuite/lib/future.exp b/gdb/testsuite/lib/future.exp
4a80f0
--- a/gdb/testsuite/lib/future.exp
4a80f0
+++ b/gdb/testsuite/lib/future.exp
4a80f0
@@ -197,6 +197,10 @@ proc gdb_default_target_compile_1 {source destfile type options} {
4a80f0
     set ldflags ""
4a80f0
     set dest [target_info name]
4a80f0
 
4a80f0
+    if {[board_info $dest exists multilib_flags]} {
4a80f0
+	append add_flags " [board_info $dest multilib_flags]"
4a80f0
+    }
4a80f0
+
4a80f0
     if {[info exists CFLAGS_FOR_TARGET]} {
4a80f0
 	append add_flags " $CFLAGS_FOR_TARGET"
4a80f0
     }
4a80f0
@@ -531,10 +535,6 @@ proc gdb_default_target_compile_1 {source destfile type options} {
4a80f0
 	}
4a80f0
     }
4a80f0
 
4a80f0
-    if {[board_info $dest exists multilib_flags]} {
4a80f0
-	append add_flags " [board_info $dest multilib_flags]"
4a80f0
-    }
4a80f0
-
4a80f0
     verbose "doing compile"
4a80f0
 
4a80f0
     set sources ""