summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2018-12-07 12:38:24 -0800
committerKhem Raj <raj.khem@gmail.com>2018-12-09 22:07:07 -0800
commitf87d761db89a41a66cbc2507ebe651f4a995cd1a (patch)
tree22388d8c3269500d139d49f88a9760728f4c8ad7
parent355375fb592b31dc9e1d36d7a6f80a4481a3cd88 (diff)
downloadmeta-clang-f87d761db89a41a66cbc2507ebe651f4a995cd1a.tar.gz
clang: Default to ssp and pie codegen when GCCPIE is set
This ensures that clang generates PIE+SSP code by default, this makes sure that packages which do not make this distinction compile properly as passing -fPIE and -pie could be not working well for their build systems Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-devtools/clang/clang/0009-clang-Enable-SSP-and-PIE-by-default.patch284
-rw-r--r--recipes-devtools/clang/common.inc2
2 files changed, 285 insertions, 1 deletions
diff --git a/recipes-devtools/clang/clang/0009-clang-Enable-SSP-and-PIE-by-default.patch b/recipes-devtools/clang/clang/0009-clang-Enable-SSP-and-PIE-by-default.patch
new file mode 100644
index 0000000..d7b61bb
--- /dev/null
+++ b/recipes-devtools/clang/clang/0009-clang-Enable-SSP-and-PIE-by-default.patch
@@ -0,0 +1,284 @@
1From 594abc54ce652e0490860c96038513cfb576bb92 Mon Sep 17 00:00:00 2001
2From: Evangelos Foutras <evangelos@foutrelis.com>
3Date: Thu, 20 Sep 2018 06:20:28 +0300
4Subject: [PATCH 9/9] clang: Enable SSP and PIE by default
5
6This is a minimal set of changes needed to make clang use SSP and PIE by
7default on Arch Linux. Tests that were easy to adjust have been changed
8accordingly; only test/Driver/linux-ld.c has been marked as "expected
9failure" due to the number of changes it would require (mostly replacing
10crtbegin.o with crtbeginS.o).
11
12Doing so is needed in order to align clang with the new default GCC
13behavior in Arch which generates PIE executables by default and also
14defaults to -fstack-protector-strong. It is not meant to be a long term
15solution, but a simple temporary fix.
16
17Hopefully these changes will be obsoleted by the introduction upstream
18of a compile-time option (https://bugs.llvm.org/show_bug.cgi?id=13410)
19---
20 lib/Driver/ToolChains/Linux.cpp | 14 ++++++++++++--
21 lib/Driver/ToolChains/Linux.h | 1 +
22 test/Driver/clang-offload-bundler.c | 2 +-
23 test/Driver/cross-linux.c | 16 ++++++++--------
24 test/Driver/env.c | 2 +-
25 test/Driver/fsanitize.c | 14 +++++++-------
26 test/Driver/gcc-toolchain.cpp | 2 +-
27 test/Driver/hexagon-toolchain-elf.c | 2 +-
28 test/Driver/linux-as.c | 4 ++--
29 test/Driver/linux-ld.c | 2 ++
30 test/Driver/riscv32-toolchain.c | 4 ++--
31 test/Driver/stack-protector.c | 4 ++--
32 12 files changed, 40 insertions(+), 27 deletions(-)
33
34diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
35index 2ca285679c..22f1a1da6d 100644
36--- a/lib/Driver/ToolChains/Linux.cpp
37+++ b/lib/Driver/ToolChains/Linux.cpp
38@@ -911,8 +911,18 @@ void Linux::AddIAMCUIncludeArgs(const ArgList &DriverArgs,
39 }
40
41 bool Linux::isPIEDefault() const {
42- return (getTriple().isAndroid() && !getTriple().isAndroidVersionLT(16)) ||
43- getTriple().isMusl() || getSanitizerArgs().requiresPIE();
44+ const bool IsMips = getTriple().isMIPS();
45+ const bool IsAndroid = getTriple().isAndroid();
46+
47+ if (IsMips || IsAndroid)
48+ return (getTriple().isAndroid() && !getTriple().isAndroidVersionLT(16)) ||
49+ getTriple().isMusl() || getSanitizerArgs().requiresPIE();
50+
51+ return true;
52+}
53+
54+unsigned Linux::GetDefaultStackProtectorLevel(bool KernelOrKext) const {
55+ return 2;
56 }
57
58 SanitizerMask Linux::getSupportedSanitizers() const {
59diff --git a/lib/Driver/ToolChains/Linux.h b/lib/Driver/ToolChains/Linux.h
60index 22dbbecf6b..ba0d5587e0 100644
61--- a/lib/Driver/ToolChains/Linux.h
62+++ b/lib/Driver/ToolChains/Linux.h
63@@ -38,6 +38,7 @@ public:
64 void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs,
65 llvm::opt::ArgStringList &CC1Args) const override;
66 bool isPIEDefault() const override;
67+ unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override;
68 SanitizerMask getSupportedSanitizers() const override;
69 void addProfileRTLibs(const llvm::opt::ArgList &Args,
70 llvm::opt::ArgStringList &CmdArgs) const override;
71diff --git a/test/Driver/clang-offload-bundler.c b/test/Driver/clang-offload-bundler.c
72index adf13f59d4..fd2f6e5d8c 100644
73--- a/test/Driver/clang-offload-bundler.c
74+++ b/test/Driver/clang-offload-bundler.c
75@@ -115,7 +115,7 @@
76 // CK-TEXTI: // __CLANG_OFFLOAD_BUNDLE____END__ openmp-x86_64-pc-linux-gnu
77
78 // CK-TEXTLL: ; __CLANG_OFFLOAD_BUNDLE____START__ host-powerpc64le-ibm-linux-gnu
79-// CK-TEXTLL: @A = global i32 0
80+// CK-TEXTLL: @A = {{(dso_local )?}}global i32 0
81 // CK-TEXTLL: define {{.*}}@test_func()
82 // CK-TEXTLL: ; __CLANG_OFFLOAD_BUNDLE____END__ host-powerpc64le-ibm-linux-gnu
83 // CK-TEXTLL: ; __CLANG_OFFLOAD_BUNDLE____START__ openmp-powerpc64le-ibm-linux-gnu
84diff --git a/test/Driver/cross-linux.c b/test/Driver/cross-linux.c
85index a5ea832e77..1949c05a60 100644
86--- a/test/Driver/cross-linux.c
87+++ b/test/Driver/cross-linux.c
88@@ -42,8 +42,8 @@
89 // CHECK-MULTI32-I386: "{{.*}}/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/bin{{/|\\\\}}ld"
90 // CHECK-MULTI32-I386: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
91 // CHECK-MULTI32-I386: "-m" "elf_i386"
92-// CHECK-MULTI32-I386: "crti.o" "[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]{{/|\\\\}}crtbegin.o"
93-// CHECK-MULTI32-I386: "-L[[gcc_install]]"
94+// CHECK-MULTI32-I386: "crti.o" "crtbeginS.o"
95+// CHECK-MULTI32-I386: "-L[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]"
96 // CHECK-MULTI32-I386: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib/../lib32"
97 // CHECK-MULTI32-I386: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib"
98 // CHECK-MULTI32-I386: "-L[[sysroot]]/lib"
99@@ -59,8 +59,8 @@
100 // CHECK-MULTI32-X86-64: "{{.*}}/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/bin{{/|\\\\}}ld"
101 // CHECK-MULTI32-X86-64: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
102 // CHECK-MULTI32-X86-64: "-m" "elf_x86_64"
103-// CHECK-MULTI32-X86-64: "crti.o" "[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]/64{{/|\\\\}}crtbegin.o"
104-// CHECK-MULTI32-X86-64: "-L[[gcc_install]]/64"
105+// CHECK-MULTI32-X86-64: "crti.o" "crtbeginS.o"
106+// CHECK-MULTI32-X86-64: "-L[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]/64"
107 // CHECK-MULTI32-X86-64: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib/../lib64"
108 // CHECK-MULTI32-X86-64: "-L[[gcc_install]]"
109 // CHECK-MULTI32-X86-64: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib"
110@@ -77,8 +77,8 @@
111 // CHECK-MULTI64-I386: "{{.*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/bin{{/|\\\\}}ld"
112 // CHECK-MULTI64-I386: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
113 // CHECK-MULTI64-I386: "-m" "elf_i386"
114-// CHECK-MULTI64-I386: "crti.o" "[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]/32{{/|\\\\}}crtbegin.o"
115-// CHECK-MULTI64-I386: "-L[[gcc_install]]/32"
116+// CHECK-MULTI64-I386: "crti.o" "crtbeginS.o"
117+// CHECK-MULTI64-I386: "-L[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]/32"
118 // CHECK-MULTI64-I386: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib/../lib32"
119 // CHECK-MULTI64-I386: "-L[[gcc_install]]"
120 // CHECK-MULTI64-I386: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib"
121@@ -95,8 +95,8 @@
122 // CHECK-MULTI64-X86-64: "{{.*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/bin{{/|\\\\}}ld"
123 // CHECK-MULTI64-X86-64: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
124 // CHECK-MULTI64-X86-64: "-m" "elf_x86_64"
125-// CHECK-MULTI64-X86-64: "crti.o" "[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]{{/|\\\\}}crtbegin.o"
126-// CHECK-MULTI64-X86-64: "-L[[gcc_install]]"
127+// CHECK-MULTI64-X86-64: "crti.o" "crtbeginS.o"
128+// CHECK-MULTI64-X86-64: "-L[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]"
129 // CHECK-MULTI64-X86-64: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib/../lib64"
130 // CHECK-MULTI64-X86-64: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib"
131 // CHECK-MULTI64-X86-64: "-L[[sysroot]]/lib"
132diff --git a/test/Driver/env.c b/test/Driver/env.c
133index 0371bc91c4..ea89f52512 100644
134--- a/test/Driver/env.c
135+++ b/test/Driver/env.c
136@@ -20,7 +20,7 @@
137 //
138 // CHECK-LD-32-NOT: warning:
139 // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
140-// CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
141+// CHECK-LD-32: "crtbeginS.o"
142 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
143 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
144 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
145diff --git a/test/Driver/fsanitize.c b/test/Driver/fsanitize.c
146index 304e759302..c157f9fc48 100644
147--- a/test/Driver/fsanitize.c
148+++ b/test/Driver/fsanitize.c
149@@ -238,15 +238,15 @@
150 // RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr -fno-sanitize=vptr -fsanitize=undefined,address %s -### 2>&1
151 // OK
152
153-// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
154-// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
155+// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
156+// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
157 // RUN: %clang -target x86_64-unknown-freebsd -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
158 // RUN: %clang -target aarch64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
159 // RUN: %clang -target arm-linux-androideabi -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIC-NO-PIE
160 // RUN: %clang -target arm-linux-androideabi24 -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
161 // RUN: %clang -target aarch64-linux-android -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
162-// RUN: %clang -target x86_64-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
163-// RUN: %clang -target i386-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
164+// RUN: %clang -target x86_64-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
165+// RUN: %clang -target i386-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
166
167 // CHECK-NO-PIE-NOT: "-pie"
168 // CHECK-NO-PIE: "-mrelocation-model" "static"
169@@ -585,12 +585,12 @@
170 // RUN: %clang -fno-sanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NOSP
171 // NOSP-NOT: "-fsanitize=safe-stack"
172
173-// RUN: %clang -target x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
174+// RUN: %clang -target x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
175 // RUN: %clang -target x86_64-linux-gnu -fsanitize=address,safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP-ASAN
176 // RUN: %clang -target x86_64-linux-gnu -fstack-protector -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
177 // RUN: %clang -target x86_64-linux-gnu -fsanitize=safe-stack -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=SP
178-// RUN: %clang -target arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
179-// RUN: %clang -target aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
180+// RUN: %clang -target arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
181+// RUN: %clang -target aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
182 // RUN: %clang -target i386-contiki-unknown -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
183 // NO-SP-NOT: stack-protector
184 // NO-SP: "-fsanitize=safe-stack"
185diff --git a/test/Driver/gcc-toolchain.cpp b/test/Driver/gcc-toolchain.cpp
186index ca96757a2b..ae1c25e989 100644
187--- a/test/Driver/gcc-toolchain.cpp
188+++ b/test/Driver/gcc-toolchain.cpp
189@@ -24,6 +24,6 @@
190 // the same precise formatting of the path as the '-internal-system' flags
191 // above, so we just blanket wildcard match the 'crtbegin.o'.
192 // CHECK: "{{[^"]*}}ld{{(.exe)?}}"
193-// CHECK: "{{[^"]*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
194+// CHECK: "crtbeginS.o"
195 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
196 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
197diff --git a/test/Driver/hexagon-toolchain-elf.c b/test/Driver/hexagon-toolchain-elf.c
198index 8f4c320ce4..a4d9ae502b 100644
199--- a/test/Driver/hexagon-toolchain-elf.c
200+++ b/test/Driver/hexagon-toolchain-elf.c
201@@ -457,7 +457,7 @@
202 // RUN: %s 2>&1 \
203 // RUN: | FileCheck -check-prefix=CHECK042 %s
204 // CHECK042: "-cc1"
205-// CHECK042: "-mrelocation-model" "static"
206+// CHECK042: "-mrelocation-model" "pic"
207 // CHECK042: "-mllvm" "-hexagon-small-data-threshold=8"
208 // CHECK042-NEXT: llvm-mc
209 // CHECK042: "-gpsize=8"
210diff --git a/test/Driver/linux-as.c b/test/Driver/linux-as.c
211index 68cf403d97..92b556db73 100644
212--- a/test/Driver/linux-as.c
213+++ b/test/Driver/linux-as.c
214@@ -133,7 +133,7 @@
215 // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu"
216 //
217 // RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
218-// RUN: -no-integrated-as -c %s 2>&1 \
219+// RUN: -no-integrated-as -fno-pic -c %s 2>&1 \
220 // RUN: | FileCheck -check-prefix=CHECK-SPARCV9 %s
221 // CHECK-SPARCV9: as
222 // CHECK-SPARCV9: -64
223@@ -142,7 +142,7 @@
224 // CHECK-SPARCV9: -o
225 //
226 // RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
227-// RUN: -no-integrated-as -fpic -c %s 2>&1 \
228+// RUN: -no-integrated-as -c %s 2>&1 \
229 // RUN: | FileCheck -check-prefix=CHECK-SPARCV9PIC %s
230 // CHECK-SPARCV9PIC: as
231 // CHECK-SPARCV9PIC: -64
232diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c
233index 787013931a..cba173b354 100644
234--- a/test/Driver/linux-ld.c
235+++ b/test/Driver/linux-ld.c
236@@ -1,3 +1,5 @@
237+// XFAIL: linux
238+
239 // General tests that ld invocations on Linux targets sane. Note that we use
240 // sysroot to make these tests independent of the host system.
241 //
242diff --git a/test/Driver/riscv32-toolchain.c b/test/Driver/riscv32-toolchain.c
243index 1e0c750a3f..563493a33b 100644
244--- a/test/Driver/riscv32-toolchain.c
245+++ b/test/Driver/riscv32-toolchain.c
246@@ -44,7 +44,7 @@
247 // C-RV32-LINUX-MULTI-ILP32: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
248 // C-RV32-LINUX-MULTI-ILP32: "-m" "elf32lriscv"
249 // C-RV32-LINUX-MULTI-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32.so.1"
250-// C-RV32-LINUX-MULTI-ILP32: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32{{/|\\\\}}crtbegin.o"
251+// C-RV32-LINUX-MULTI-ILP32: "crtbeginS.o"
252 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32"
253 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32"
254 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32"
255@@ -59,7 +59,7 @@
256 // C-RV32-LINUX-MULTI-ILP32D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
257 // C-RV32-LINUX-MULTI-ILP32D: "-m" "elf32lriscv"
258 // C-RV32-LINUX-MULTI-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32d.so.1"
259-// C-RV32-LINUX-MULTI-ILP32D: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32d{{/|\\\\}}crtbegin.o"
260+// C-RV32-LINUX-MULTI-ILP32D: "crtbeginS.o"
261 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32d"
262 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32d"
263 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32d"
264diff --git a/test/Driver/stack-protector.c b/test/Driver/stack-protector.c
265index a3e40b50ee..dfffe0d6cf 100644
266--- a/test/Driver/stack-protector.c
267+++ b/test/Driver/stack-protector.c
268@@ -3,11 +3,11 @@
269 // NOSSP-NOT: "-stack-protector-buffer-size"
270
271 // RUN: %clang -target i386-unknown-linux -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=SSP
272-// SSP: "-stack-protector" "1"
273+// SSP: "-stack-protector" "2"
274 // SSP-NOT: "-stack-protector-buffer-size"
275
276 // RUN: %clang -target i386-unknown-linux -fstack-protector --param ssp-buffer-size=16 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-BUF
277-// SSP-BUF: "-stack-protector" "1"
278+// SSP-BUF: "-stack-protector" "2"
279 // SSP-BUF: "-stack-protector-buffer-size" "16"
280
281 // RUN: %clang -target i386-pc-openbsd -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD
282--
2832.19.2
284
diff --git a/recipes-devtools/clang/common.inc b/recipes-devtools/clang/common.inc
index 92ac4ab..74bccf4 100644
--- a/recipes-devtools/clang/common.inc
+++ b/recipes-devtools/clang/common.inc
@@ -21,7 +21,7 @@ CLANGPATCHES = "\
21 file://0007-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch;patchdir=tools/clang \ 21 file://0007-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch;patchdir=tools/clang \
22 file://0008-clang-scan-view-needs-python-2.x.patch;patchdir=tools/clang \ 22 file://0008-clang-scan-view-needs-python-2.x.patch;patchdir=tools/clang \
23" 23"
24#CLANGPATCHES += "${@'file://0007-clang-Enable-SSP-and-PIE-by-default.patch;patchdir=tools/clang' if '${GCCPIE}' else ''}" 24CLANGPATCHES += "${@'file://0009-clang-Enable-SSP-and-PIE-by-default.patch;patchdir=tools/clang' if '${GCCPIE}' else ''}"
25 25
26# libcxxabi patches 26# libcxxabi patches
27LIBCXXABIPATCHES ="\ 27LIBCXXABIPATCHES ="\