summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch')
-rw-r--r--recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch313
1 files changed, 313 insertions, 0 deletions
diff --git a/recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch b/recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch
new file mode 100644
index 0000000..29bb041
--- /dev/null
+++ b/recipes-devtools/clang/clang/0020-clang-Enable-SSP-and-PIE-by-default.patch
@@ -0,0 +1,313 @@
1From 9fd60731726031748f2640ae9daae10ad479fb81 Mon Sep 17 00:00:00 2001
2From: Evangelos Foutras <evangelos@foutrelis.com>
3Date: Thu, 26 Dec 2019 15:46:19 -0800
4Subject: [PATCH] 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
20Taken from ArchLinux - https://git.archlinux.org/svntogit/packages.git/plain/trunk/enable-SSP-and-PIE-by-default.patch?h=packages/clang
21
22Signed-off-by: Khem Raj <raj.khem@gmail.com>
23---
24 clang/lib/Driver/ToolChains/Linux.cpp | 14 ++++++++++++--
25 clang/lib/Driver/ToolChains/Linux.h | 1 +
26 clang/test/Driver/cross-linux.c | 16 ++++++++--------
27 clang/test/Driver/env.c | 2 +-
28 clang/test/Driver/fsanitize.c | 14 +++++++-------
29 clang/test/Driver/gcc-toolchain.cpp | 2 +-
30 clang/test/Driver/hexagon-toolchain-elf.c | 2 +-
31 clang/test/Driver/linux-as.c | 4 ++--
32 clang/test/Driver/linux-ld.c | 2 ++
33 clang/test/Driver/ppc-abi.c | 4 ++--
34 clang/test/Driver/riscv32-toolchain.c | 4 ++--
35 clang/test/Driver/riscv64-toolchain.c | 4 ++--
36 clang/test/Driver/stack-protector.c | 4 ++--
37 13 files changed, 43 insertions(+), 30 deletions(-)
38
39diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
40index 0a4644dab9f..fb579e7ad60 100644
41--- a/clang/lib/Driver/ToolChains/Linux.cpp
42+++ b/clang/lib/Driver/ToolChains/Linux.cpp
43@@ -941,8 +941,18 @@ void Linux::AddIAMCUIncludeArgs(const ArgList &DriverArgs,
44 }
45
46 bool Linux::isPIEDefault() const {
47- return (getTriple().isAndroid() && !getTriple().isAndroidVersionLT(16)) ||
48- getTriple().isMusl() || getSanitizerArgs().requiresPIE();
49+ const bool IsMips = getTriple().isMIPS();
50+ const bool IsAndroid = getTriple().isAndroid();
51+
52+ if (IsMips || IsAndroid)
53+ return (getTriple().isAndroid() && !getTriple().isAndroidVersionLT(16)) ||
54+ getTriple().isMusl() || getSanitizerArgs().requiresPIE();
55+
56+ return true;
57+}
58+
59+unsigned Linux::GetDefaultStackProtectorLevel(bool KernelOrKext) const {
60+ return 2;
61 }
62
63 bool Linux::isNoExecStackDefault() const {
64diff --git a/clang/lib/Driver/ToolChains/Linux.h b/clang/lib/Driver/ToolChains/Linux.h
65index f5518eac218..2d4973cf40c 100644
66--- a/clang/lib/Driver/ToolChains/Linux.h
67+++ b/clang/lib/Driver/ToolChains/Linux.h
68@@ -37,6 +37,7 @@ public:
69 bool isPIEDefault() const override;
70 bool isNoExecStackDefault() const override;
71 bool IsMathErrnoDefault() const override;
72+ unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override;
73 SanitizerMask getSupportedSanitizers() const override;
74 void addProfileRTLibs(const llvm::opt::ArgList &Args,
75 llvm::opt::ArgStringList &CmdArgs) const override;
76diff --git a/clang/test/Driver/cross-linux.c b/clang/test/Driver/cross-linux.c
77index 6c2dab26069..c28c5653e34 100644
78--- a/clang/test/Driver/cross-linux.c
79+++ b/clang/test/Driver/cross-linux.c
80@@ -42,8 +42,8 @@
81 // CHECK-MULTI32-I386: "{{.*}}/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/bin{{/|\\\\}}ld"
82 // CHECK-MULTI32-I386: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
83 // CHECK-MULTI32-I386: "-m" "elf_i386"
84-// CHECK-MULTI32-I386: "crti.o" "[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]{{/|\\\\}}crtbegin.o"
85-// CHECK-MULTI32-I386: "-L[[gcc_install]]"
86+// CHECK-MULTI32-I386: "crti.o" "crtbeginS.o"
87+// CHECK-MULTI32-I386: "-L[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]"
88 // CHECK-MULTI32-I386: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib/../lib32"
89 // CHECK-MULTI32-I386: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib"
90 // CHECK-MULTI32-I386: "-L[[sysroot]]/lib"
91@@ -60,8 +60,8 @@
92 // CHECK-MULTI32-X86-64: "{{.*}}/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/bin{{/|\\\\}}ld"
93 // CHECK-MULTI32-X86-64: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
94 // CHECK-MULTI32-X86-64: "-m" "elf_x86_64"
95-// 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"
96-// CHECK-MULTI32-X86-64: "-L[[gcc_install]]/64"
97+// CHECK-MULTI32-X86-64: "crti.o" "crtbeginS.o"
98+// CHECK-MULTI32-X86-64: "-L[[gcc_install:.*/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0]]/64"
99 // CHECK-MULTI32-X86-64: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib/../lib64"
100 // CHECK-MULTI32-X86-64: "-L[[gcc_install]]"
101 // CHECK-MULTI32-X86-64: "-L[[gcc_install]]/../../../../i386-unknown-linux/lib"
102@@ -79,8 +79,8 @@
103 // CHECK-MULTI64-I386: "{{.*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/bin{{/|\\\\}}ld"
104 // CHECK-MULTI64-I386: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
105 // CHECK-MULTI64-I386: "-m" "elf_i386"
106-// 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"
107-// CHECK-MULTI64-I386: "-L[[gcc_install]]/32"
108+// CHECK-MULTI64-I386: "crti.o" "crtbeginS.o"
109+// CHECK-MULTI64-I386: "-L[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]/32"
110 // CHECK-MULTI64-I386: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib/../lib32"
111 // CHECK-MULTI64-I386: "-L[[gcc_install]]"
112 // CHECK-MULTI64-I386: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib"
113@@ -98,8 +98,8 @@
114 // 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"
115 // CHECK-MULTI64-X86-64: "--sysroot=[[sysroot:.*/Inputs/basic_linux_tree]]"
116 // CHECK-MULTI64-X86-64: "-m" "elf_x86_64"
117-// 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"
118-// CHECK-MULTI64-X86-64: "-L[[gcc_install]]"
119+// CHECK-MULTI64-X86-64: "crti.o" "crtbeginS.o"
120+// CHECK-MULTI64-X86-64: "-L[[gcc_install:.*/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0]]"
121 // CHECK-MULTI64-X86-64: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib/../lib64"
122 // CHECK-MULTI64-X86-64: "-L[[gcc_install]]/../../../../x86_64-unknown-linux/lib"
123 // CHECK-MULTI64-X86-64: "-L[[sysroot]]/lib"
124diff --git a/clang/test/Driver/env.c b/clang/test/Driver/env.c
125index 0371bc91c4a..ea89f525121 100644
126--- a/clang/test/Driver/env.c
127+++ b/clang/test/Driver/env.c
128@@ -20,7 +20,7 @@
129 //
130 // CHECK-LD-32-NOT: warning:
131 // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
132-// CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o"
133+// CHECK-LD-32: "crtbeginS.o"
134 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0"
135 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib"
136 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.."
137diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
138index f02f94d8c5a..358917588c7 100644
139--- a/clang/test/Driver/fsanitize.c
140+++ b/clang/test/Driver/fsanitize.c
141@@ -328,15 +328,15 @@
142 // RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr -fno-sanitize=vptr -fsanitize=undefined,address %s -### 2>&1
143 // OK
144
145-// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
146-// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
147+// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
148+// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
149 // RUN: %clang -target x86_64-unknown-freebsd -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
150 // RUN: %clang -target aarch64-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
151 // RUN: %clang -target arm-linux-androideabi -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIC-NO-PIE
152 // RUN: %clang -target arm-linux-androideabi24 -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
153 // RUN: %clang -target aarch64-linux-android -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
154-// RUN: %clang -target x86_64-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
155-// RUN: %clang -target i386-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PIE
156+// RUN: %clang -target x86_64-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
157+// RUN: %clang -target i386-linux-gnu -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PIE
158
159 // CHECK-NO-PIE-NOT: "-pie"
160 // CHECK-NO-PIE: "-mrelocation-model" "static"
161@@ -661,12 +661,12 @@
162 // RUN: %clang -fno-sanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NOSP
163 // NOSP-NOT: "-fsanitize=safe-stack"
164
165-// RUN: %clang -target x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
166+// RUN: %clang -target x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
167 // RUN: %clang -target x86_64-linux-gnu -fsanitize=address,safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP-ASAN
168 // RUN: %clang -target x86_64-linux-gnu -fstack-protector -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
169 // RUN: %clang -target x86_64-linux-gnu -fsanitize=safe-stack -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=SP
170-// RUN: %clang -target arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
171-// RUN: %clang -target aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
172+// RUN: %clang -target arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
173+// RUN: %clang -target aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
174 // RUN: %clang -target i386-contiki-unknown -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
175 // NO-SP-NOT: stack-protector
176 // NO-SP: "-fsanitize=safe-stack"
177diff --git a/clang/test/Driver/gcc-toolchain.cpp b/clang/test/Driver/gcc-toolchain.cpp
178index 6c872f4255c..f5006d1dd9a 100644
179--- a/clang/test/Driver/gcc-toolchain.cpp
180+++ b/clang/test/Driver/gcc-toolchain.cpp
181@@ -26,6 +26,6 @@
182 // the same precise formatting of the path as the '-internal-system' flags
183 // above, so we just blanket wildcard match the 'crtbegin.o'.
184 // CHECK: "{{[^"]*}}ld{{(.exe)?}}"
185-// CHECK: "{{[^"]*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o"
186+// CHECK: "crtbeginS.o"
187 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5"
188 // CHECK: "-L[[TOOLCHAIN]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.."
189diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c
190index 44bff6f703a..6575d032f5d 100644
191--- a/clang/test/Driver/hexagon-toolchain-elf.c
192+++ b/clang/test/Driver/hexagon-toolchain-elf.c
193@@ -470,7 +470,7 @@
194 // RUN: %s 2>&1 \
195 // RUN: | FileCheck -check-prefix=CHECK042 %s
196 // CHECK042: "-cc1"
197-// CHECK042: "-mrelocation-model" "static"
198+// CHECK042: "-mrelocation-model" "pic"
199 // CHECK042: "-mllvm" "-hexagon-small-data-threshold=8"
200 // CHECK042-NEXT: llvm-mc
201 // CHECK042: "-gpsize=8"
202diff --git a/clang/test/Driver/linux-as.c b/clang/test/Driver/linux-as.c
203index 77ac05f3094..cb474f32898 100644
204--- a/clang/test/Driver/linux-as.c
205+++ b/clang/test/Driver/linux-as.c
206@@ -164,7 +164,7 @@
207 // CHECK-PPC-NO-MCPU-NOT: as{{.*}} "-mcpu=invalid-cpu"
208 //
209 // RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
210-// RUN: -no-integrated-as -c %s 2>&1 \
211+// RUN: -no-integrated-as -fno-pic -c %s 2>&1 \
212 // RUN: | FileCheck -check-prefix=CHECK-SPARCV9 %s
213 // CHECK-SPARCV9: as
214 // CHECK-SPARCV9: -64
215@@ -173,7 +173,7 @@
216 // CHECK-SPARCV9: -o
217 //
218 // RUN: %clang -target sparc64-linux -mcpu=invalid-cpu -### \
219-// RUN: -no-integrated-as -fpic -c %s 2>&1 \
220+// RUN: -no-integrated-as -c %s 2>&1 \
221 // RUN: | FileCheck -check-prefix=CHECK-SPARCV9PIC %s
222 // CHECK-SPARCV9PIC: as
223 // CHECK-SPARCV9PIC: -64
224diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c
225index 51227550b52..d01d6627131 100644
226--- a/clang/test/Driver/linux-ld.c
227+++ b/clang/test/Driver/linux-ld.c
228@@ -1,3 +1,5 @@
229+// XFAIL: linux
230+
231 // General tests that ld invocations on Linux targets sane. Note that we use
232 // sysroot to make these tests independent of the host system.
233 //
234diff --git a/clang/test/Driver/ppc-abi.c b/clang/test/Driver/ppc-abi.c
235index acc4981a2ee..0d465516762 100644
236--- a/clang/test/Driver/ppc-abi.c
237+++ b/clang/test/Driver/ppc-abi.c
238@@ -32,11 +32,11 @@
239
240 // CHECK-ELFv1: "-mrelocation-model" "static"
241 // CHECK-ELFv1: "-target-abi" "elfv1"
242-// CHECK-ELFv1-LE: "-mrelocation-model" "static"
243+// CHECK-ELFv1-LE: "-mrelocation-model" "pic" "-pic-level" "2"
244 // CHECK-ELFv1-LE: "-target-abi" "elfv1"
245 // CHECK-ELFv1-QPX: "-mrelocation-model" "static"
246 // CHECK-ELFv1-QPX: "-target-abi" "elfv1-qpx"
247-// CHECK-ELFv2: "-mrelocation-model" "static"
248+// CHECK-ELFv2: "-mrelocation-model" "pic" "-pic-level" "2"
249 // CHECK-ELFv2: "-target-abi" "elfv2"
250 // CHECK-ELFv2-BE: "-mrelocation-model" "static"
251 // CHECK-ELFv2-BE: "-target-abi" "elfv2"
252diff --git a/clang/test/Driver/riscv32-toolchain.c b/clang/test/Driver/riscv32-toolchain.c
253index 2ff3a585bda..f923b728c0f 100644
254--- a/clang/test/Driver/riscv32-toolchain.c
255+++ b/clang/test/Driver/riscv32-toolchain.c
256@@ -76,7 +76,7 @@
257 // C-RV32-LINUX-MULTI-ILP32: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
258 // C-RV32-LINUX-MULTI-ILP32: "-m" "elf32lriscv"
259 // C-RV32-LINUX-MULTI-ILP32: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32.so.1"
260-// C-RV32-LINUX-MULTI-ILP32: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32{{/|\\\\}}crtbegin.o"
261+// C-RV32-LINUX-MULTI-ILP32: "crtbeginS.o"
262 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32"
263 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32"
264 // C-RV32-LINUX-MULTI-ILP32: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32"
265@@ -91,7 +91,7 @@
266 // C-RV32-LINUX-MULTI-ILP32D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
267 // C-RV32-LINUX-MULTI-ILP32D: "-m" "elf32lriscv"
268 // C-RV32-LINUX-MULTI-ILP32D: "-dynamic-linker" "/lib/ld-linux-riscv32-ilp32d.so.1"
269-// C-RV32-LINUX-MULTI-ILP32D: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32d{{/|\\\\}}crtbegin.o"
270+// C-RV32-LINUX-MULTI-ILP32D: "crtbeginS.o"
271 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib32/ilp32d"
272 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib32/ilp32d"
273 // C-RV32-LINUX-MULTI-ILP32D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib32/ilp32d"
274diff --git a/clang/test/Driver/riscv64-toolchain.c b/clang/test/Driver/riscv64-toolchain.c
275index 42cac51de59..42a05e02fcc 100644
276--- a/clang/test/Driver/riscv64-toolchain.c
277+++ b/clang/test/Driver/riscv64-toolchain.c
278@@ -76,7 +76,7 @@
279 // C-RV64-LINUX-MULTI-LP64: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
280 // C-RV64-LINUX-MULTI-LP64: "-m" "elf64lriscv"
281 // C-RV64-LINUX-MULTI-LP64: "-dynamic-linker" "/lib/ld-linux-riscv64-lp64.so.1"
282-// C-RV64-LINUX-MULTI-LP64: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib64/lp64{{/|\\\\}}crtbegin.o"
283+// C-RV64-LINUX-MULTI-LP64: "crtbeginS.o"
284 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib64/lp64"
285 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib64/lp64"
286 // C-RV64-LINUX-MULTI-LP64: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib64/lp64"
287@@ -91,7 +91,7 @@
288 // C-RV64-LINUX-MULTI-LP64D: "--sysroot={{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot"
289 // C-RV64-LINUX-MULTI-LP64D: "-m" "elf64lriscv"
290 // C-RV64-LINUX-MULTI-LP64D: "-dynamic-linker" "/lib/ld-linux-riscv64-lp64d.so.1"
291-// C-RV64-LINUX-MULTI-LP64D: "{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib64/lp64d{{/|\\\\}}crtbegin.o"
292+// C-RV64-LINUX-MULTI-LP64D: "crtbeginS.o"
293 // C-RV64-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/lib/gcc/riscv64-unknown-linux-gnu/7.2.0/lib64/lp64d"
294 // C-RV64-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/lib64/lp64d"
295 // C-RV64-LINUX-MULTI-LP64D: "-L{{.*}}/Inputs/multilib_riscv_linux_sdk/sysroot/usr/lib64/lp64d"
296diff --git a/clang/test/Driver/stack-protector.c b/clang/test/Driver/stack-protector.c
297index a3e40b50eed..dfffe0d6cf8 100644
298--- a/clang/test/Driver/stack-protector.c
299+++ b/clang/test/Driver/stack-protector.c
300@@ -3,11 +3,11 @@
301 // NOSSP-NOT: "-stack-protector-buffer-size"
302
303 // RUN: %clang -target i386-unknown-linux -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=SSP
304-// SSP: "-stack-protector" "1"
305+// SSP: "-stack-protector" "2"
306 // SSP-NOT: "-stack-protector-buffer-size"
307
308 // RUN: %clang -target i386-unknown-linux -fstack-protector --param ssp-buffer-size=16 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-BUF
309-// SSP-BUF: "-stack-protector" "1"
310+// SSP-BUF: "-stack-protector" "2"
311 // SSP-BUF: "-stack-protector-buffer-size" "16"
312
313 // RUN: %clang -target i386-pc-openbsd -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD