blob: b2f2bbdf46a312862508b8d872870fa9f3b6b6a9 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001From 4fa0cf03678f849917dcc3d149989b7fecdbe276 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 2 Feb 2016 21:10:00 -0800
4Subject: [PATCH 50/51] powerpc pass --secure-plt to the linker
5
6Secure-plt when enabled does not pass right options to linker
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10Upstream-Status: Pending
11 gcc/config/rs6000/linux64.h | 4 ++++
12 gcc/config/rs6000/sysv4.h | 2 ++
13 2 files changed, 6 insertions(+)
14
15diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
16index 679da4b..3ca7cd7 100644
17--- a/gcc/config/rs6000/linux64.h
18+++ b/gcc/config/rs6000/linux64.h
19@@ -174,20 +174,24 @@ extern int dot_symbols;
20 #undef ASM_DEFAULT_SPEC
21 #undef ASM_SPEC
22 #undef LINK_OS_LINUX_SPEC
23+#undef LINK_SECURE_PLT_SPEC
24
25 #ifndef RS6000_BI_ARCH
26 #define ASM_DEFAULT_SPEC "-mppc64"
27 #define ASM_SPEC "%(asm_spec64) %(asm_spec_common)"
28 #define LINK_OS_LINUX_SPEC "%(link_os_linux_spec64)"
29+#define LINK_SECURE_PLT_SPEC ""
30 #else
31 #if DEFAULT_ARCH64_P
32 #define ASM_DEFAULT_SPEC "-mppc%{!m32:64}"
33 #define ASM_SPEC "%{m32:%(asm_spec32)}%{!m32:%(asm_spec64)} %(asm_spec_common)"
34 #define LINK_OS_LINUX_SPEC "%{m32:%(link_os_linux_spec32)}%{!m32:%(link_os_linux_spec64)}"
35+#define LINK_SECURE_PLT_SPEC "%{m32: " LINK_SECURE_PLT_DEFAULT_SPEC "}"
36 #else
37 #define ASM_DEFAULT_SPEC "-mppc%{m64:64}"
38 #define ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)"
39 #define LINK_OS_LINUX_SPEC "%{!m64:%(link_os_linux_spec32)}%{m64:%(link_os_linux_spec64)}"
40+#define LINK_SECURE_PLT_SPEC "%{!m64: " LINK_SECURE_PLT_DEFAULT_SPEC "}"
41 #endif
42 #endif
43
44diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
45index 8794fa5..0835551 100644
46--- a/gcc/config/rs6000/sysv4.h
47+++ b/gcc/config/rs6000/sysv4.h
48@@ -571,6 +571,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
49 : %(link_start_default) }"
50
51 #define LINK_START_DEFAULT_SPEC ""
52+#define LINK_SECURE_PLT_SPEC LINK_SECURE_PLT_DEFAULT_SPEC
53
54 #undef LINK_SPEC
55 #define LINK_SPEC "\
56@@ -578,6 +579,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
57 %{R*} \
58 %(link_shlib) \
59 %{!T*: %(link_start) } \
60+%{!static: %{!mbss-plt: %(link_secure_plt_default)}} \
61 %(link_os)"
62
63 /* Shared libraries are not default. */
64--
652.7.0
66