1- From f037d9740bf53cf43142595330355a3b61304dd7 Mon Sep 17 00:00:00 2001
1+ From 3c25466248617c03c4db62504b226f82b568be5e Mon Sep 17 00:00:00 2001
22From: Volodymyr Turanskyy <
[email protected] >
3- Date: Wed, 18 Dec 2024 16:29:25 +0000
4- Subject: [PATCH] Revert order of libraries on the command line
3+ Date: Thu, 19 Dec 2024 12:01:58 +0000
4+ Subject: [PATCH] Revert order of libraries and update tests
55
66---
7- clang/lib/Driver/ToolChains/BareMetal.cpp | 3 +--
8- 1 file changed, 1 insertion(+), 2 deletions(-)
7+ clang/lib/Driver/ToolChains/BareMetal.cpp | 3 +-
8+ clang/test/Driver/baremetal-multilib.yaml | 2 +-
9+ clang/test/Driver/baremetal-sysroot.cpp | 2 +-
10+ clang/test/Driver/baremetal.cpp | 38 +++++++++++------------
11+ 4 files changed, 22 insertions(+), 23 deletions(-)
912
1013diff --git a/clang/lib/Driver/ToolChains/BareMetal.cpp b/clang/lib/Driver/ToolChains/BareMetal.cpp
1114index eecaaa9a4293..7d07079b5dd4 100644
@@ -22,6 +25,218 @@ index eecaaa9a4293..7d07079b5dd4 100644
2225 }
2326
2427 if (D.isUsingLTO()) {
28+ diff --git a/clang/test/Driver/baremetal-multilib.yaml b/clang/test/Driver/baremetal-multilib.yaml
29+ index 853a4e9e36e4..847b1d6b3377 100644
30+ --- a/clang/test/Driver/baremetal-multilib.yaml
31+ +++ b/clang/test/Driver/baremetal-multilib.yaml
32+ @@ -10,8 +10,8 @@
33+ # CHECK-SAME: "-x" "c++" "{{.*}}baremetal-multilib.yaml"
34+ # CHECK-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
35+ # CHECK-SAME: "-L[[SYSROOT]]/bin/../lib/clang-runtimes/arm-none-eabi/thumb/v8-m.main/fp/lib"
36+ - # CHECK-SAME: "{{[^"]*}}libclang_rt.builtins.a"
37+ # CHECK-SAME: "-lc"
38+ + # CHECK-SAME: "{{[^"]*}}libclang_rt.builtins.a"
39+ # CHECK-SAME: "-o" "{{.*}}.tmp.out"
40+
41+ # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c++ %s -### -o %t.out 2>&1 \
42+ diff --git a/clang/test/Driver/baremetal-sysroot.cpp b/clang/test/Driver/baremetal-sysroot.cpp
43+ index 5cbb7ac69a7a..2b836e65016b 100644
44+ --- a/clang/test/Driver/baremetal-sysroot.cpp
45+ +++ b/clang/test/Driver/baremetal-sysroot.cpp
46+ @@ -18,6 +18,6 @@
47+ // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal-sysroot.cpp"
48+ // CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
49+ // CHECK-V6M-C-SAME: "-L{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}lib"
50+ - // CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a"
51+ // CHECK-V6M-C-SAME: "-lc"
52+ + // CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a"
53+ // CHECK-V6M-C-SAME: "-o" "{{.*}}.o"
54+ diff --git a/clang/test/Driver/baremetal.cpp b/clang/test/Driver/baremetal.cpp
55+ index 6d6255ef5970..08c49a1beec0 100644
56+ --- a/clang/test/Driver/baremetal.cpp
57+ +++ b/clang/test/Driver/baremetal.cpp
58+ @@ -19,8 +19,8 @@
59+ // CHECK-V6M-C-SAME: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o"
60+ // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
61+ // CHECK-V6M-C-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
62+ - // CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a"
63+ // CHECK-V6M-C-SAME: "-lc"
64+ + // CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a"
65+ // CHECK-V6M-C-SAME: "--target2=rel" "-o" "{{.*}}.tmp.out"
66+
67+ // RUN: %clang %s -### --target=armv6m-none-eabi -nostdlibinc -nobuiltininc 2>&1 \
68+ @@ -42,8 +42,8 @@
69+ // CHECK-V6M-TREE-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
70+ // CHECK-V6M-TREE-SAME: "[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}armv6m-unknown-none-eabi{{[/\\]+}}crt0.o"
71+ // CHECK-V6M-TREE-SAME: "-L[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}armv6m-unknown-none-eabi"
72+ - // CHECK-V6M-TREE-SAME: "{{[^"]*}}libclang_rt.builtins.a"
73+ // CHECK-V6M-TREE-SAME: "-lc"
74+ + // CHECK-V6M-TREE-SAME: "{{[^"]*}}libclang_rt.builtins.a"
75+ // CHECK-V6M-TREE-SAME: "--target2=rel" "-o" "{{.*}}.tmp.out"
76+
77+ // RUN: %clang %s -### --target=armv7m-vendor-none-eabi -rtlib=compiler-rt 2>&1 \
78+ @@ -57,8 +57,8 @@
79+ // CHECK-ARMV7M-PER_TARGET: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o"
80+ // CHECK-ARMV7M-PER-TARGET: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
81+ // CHECK-ARMV7M-PER-TARGET: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}armv7m-vendor-none-eabi
82+ - // CHECK-ARMV7M-PER-TARGET: "{{[^"]*}}libclang_rt.builtins.a"
83+ // CHECK-ARMV7M-PER-TARGET: "-lc"
84+ + // CHECK-ARMV7M-PER-TARGET: "{{[^"]*}}libclang_rt.builtins.a"
85+
86+ // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \
87+ // RUN: --sysroot=%S/Inputs/baremetal_arm | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s
88+ @@ -68,8 +68,8 @@
89+ // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
90+ // CHECK-V6M-DEFAULTCXX-SAME: "-lc++"
91+ // CHECK-V6M-DEFAULTCXX-SAME: "-lm"
92+ - // CHECK-V6M-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
93+ // CHECK-V6M-DEFAULTCXX-SAME: "-lc"
94+ + // CHECK-V6M-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
95+ // CHECK-V6M-DEFAULTCXX-SAME: "--target2=rel" "-o" "a.out"
96+
97+ // RUN: %clangxx %s -### --target=armv6m-none-eabi -stdlib=libc++ 2>&1 \
98+ @@ -81,8 +81,8 @@
99+ // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
100+ // CHECK-V6M-LIBCXX-SAME: "-lc++"
101+ // CHECK-V6M-LIBCXX-SAME: "-lm"
102+ - // CHECK-V6M-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
103+ // CHECK-V6M-LIBCXX-SAME: "-lc"
104+ + // CHECK-V6M-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
105+ // CHECK-V6M-LIBCXX-SAME: "--target2=rel" "-o" "a.out"
106+
107+ // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \
108+ @@ -95,8 +95,8 @@
109+ // CHECK-V6M-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL"
110+ // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib"
111+ // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lm"
112+ - // CHECK-V6M-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
113+ // CHECK-V6M-LIBSTDCXX-SAME: "-lc"
114+ + // CHECK-V6M-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
115+ // CHECK-V6M-LIBSTDCXX-SAME: "--target2=rel" "-o" "a.out"
116+
117+ // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \
118+ @@ -120,8 +120,8 @@
119+ // CHECK-V6M-LIBCXX-USR: "{{[^"]*}}-Bstatic"
120+ // CHECK-V6M-LIBCXX-USR-SAME: "-L{{[^"]*}}{{[/\\]+}}baremetal_cxx_sysroot{{[/\\]+}}lib"
121+ // CHECK-V6M-LIBCXX-USR-SAME: "-lc++" "-lm"
122+ - // CHECK-V6M-LIBCXX-USR-SAME: "{{[^"]*}}libclang_rt.builtins.a"
123+ // CHECK-V6M-LIBCXX-USR-SAME: "-lc"
124+ + // CHECK-V6M-LIBCXX-USR-SAME: "{{[^"]*}}libclang_rt.builtins.a"
125+
126+ // RUN: %clangxx --target=arm-none-eabi -v 2>&1 \
127+ // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL
128+ @@ -208,8 +208,8 @@
129+ // CHECK-RV64-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
130+ // CHECK-RV64-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
131+ // CHECK-RV64-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
132+ - // CHECK-RV64-SAME: "{{[^"]*}}libclang_rt.builtins.a"
133+ // CHECK-RV64-SAME: "-lc"
134+ + // CHECK-RV64-SAME: "{{[^"]*}}libclang_rt.builtins.a"
135+ // CHECK-RV64-SAME: "-X" "-o" "{{.*}}.tmp.out"
136+
137+ // RUN: %clangxx %s -### --target=riscv64-unknown-elf 2>&1 \
138+ @@ -219,8 +219,8 @@
139+ // CHECK-RV64-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
140+ // CHECK-RV64-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
141+ // CHECK-RV64-DEFAULTCXX-SAME: "-lc++" "-lm"
142+ - // CHECK-RV64-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
143+ // CHECK-RV64-DEFAULTCXX-SAME: "-lc"
144+ + // CHECK-RV64-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
145+ // CHECK-RV64-DEFAULTCXX-SAME: "-X" "-o" "a.out"
146+
147+ // RUN: %clangxx %s -### --target=riscv64-unknown-elf 2>&1 \
148+ @@ -233,8 +233,8 @@
149+ // CHECK-RV64-LIBCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
150+ // CHECK-RV64-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
151+ // CHECK-RV64-LIBCXX-SAME: "-lc++" "-lm"
152+ - // CHECK-RV64-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
153+ // CHECK-RV64-LIBCXX-SAME: "-lc"
154+ + // CHECK-RV64-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
155+ // CHECK-RV64-LIBCXX-SAME: "-X" "-o" "a.out"
156+
157+ // RUN: %clangxx %s -### 2>&1 --target=riscv64-unknown-elf \
158+ @@ -247,8 +247,8 @@
159+ // CHECK-RV64-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
160+ // CHECK-RV64-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib"
161+ // CHECK-RV64-LIBSTDCXX-SAME: "-lstdc++" "-lm"
162+ - // CHECK-RV64-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
163+ // CHECK-RV64-LIBSTDCXX-SAME: "-lc"
164+ + // CHECK-RV64-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
165+ // CHECK-RV64-LIBSTDCXX-SAME: "-X" "-o" "a.out"
166+
167+ // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \
168+ @@ -264,8 +264,8 @@
169+ // CHECK-RV32-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
170+ // CHECK-RV32-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
171+ // CHECK-RV32-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib"
172+ - // CHECK-RV32-SAME: "{{[^"]*}}libclang_rt.builtins.a"
173+ // CHECK-RV32-SAME: "-lc"
174+ + // CHECK-RV32-SAME: "{{[^"]*}}libclang_rt.builtins.a"
175+ // CHECK-RV32-SAME: "-X" "-o" "a.out"
176+
177+ // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \
178+ @@ -275,8 +275,8 @@
179+ // CHECK-RV32-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
180+ // CHECK-RV32-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib"
181+ // CHECK-RV32-DEFAULTCXX-SAME: "-lc++" "-lm"
182+ - // CHECK-RV32-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
183+ // CHECK-RV32-DEFAULTCXX-SAME: "-lc"
184+ + // CHECK-RV32-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
185+ // CHECK-RV32-DEFAULTCXX-SAME: "-X" "-o" "a.out"
186+
187+ // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \
188+ @@ -301,9 +301,9 @@
189+ // CHECK-RV32-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1"
190+ // CHECK-RV32-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
191+ // CHECK-RV32-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib"
192+ - // CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lm"
193+ + // CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lm" "-lc"
194+ // CHECK-RV32-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a"
195+ - // CHECK-RV32-LIBSTDCXX-SAME: "-lc" "-X" "-o" "a.out"
196+ + // CHECK-RV32-LIBSTDCXX-SAME: "-X" "-o" "a.out"
197+
198+ // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf \
199+ // RUN: -nostdlibinc -nobuiltininc \
200+ @@ -425,8 +425,8 @@
201+ // CHECK-PPCEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
202+ // CHECK-PPCEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
203+ // CHECK-PPCEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
204+ - // CHECK-PPCEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
205+ // CHECK-PPCEABI-SAME: "-lc"
206+ + // CHECK-PPCEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
207+ // CHECK-PPCEABI-SAME: "-o" "a.out"
208+
209+ // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc64-unknown-eabi 2>&1 \
210+ @@ -439,8 +439,8 @@
211+ // CHECK-PPC64EABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
212+ // CHECK-PPC64EABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
213+ // CHECK-PPC64EABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
214+ - // CHECK-PPC64EABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
215+ // CHECK-PPC64EABI-SAME: "-lc"
216+ + // CHECK-PPC64EABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
217+ // CHECK-PPC64EABI-SAME: "-o" "a.out"
218+
219+ // RUN: %clang -no-canonical-prefixes %s -### --target=powerpcle-unknown-eabi 2>&1 \
220+ @@ -453,8 +453,8 @@
221+ // CHECK-PPCLEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
222+ // CHECK-PPCLEEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
223+ // CHECK-PPCLEEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
224+ - // CHECK-PPCLEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
225+ // CHECK-PPCLEEABI-SAME: "-lc"
226+ + // CHECK-PPCLEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
227+ // CHECK-PPCLEEABI-SAME: "-o" "a.out"
228+
229+ // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc64le-unknown-eabi 2>&1 \
230+ @@ -467,8 +467,8 @@
231+ // CHECK-PPC64LEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include"
232+ // CHECK-PPC64LEEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic"
233+ // CHECK-PPC64LEEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib"
234+ - // CHECK-PPC64LEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
235+ // CHECK-PPC64LEEABI-SAME: "-lc"
236+ + // CHECK-PPC64LEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a"
237+ // CHECK-PPC64LEEABI-SAME: "-o" "a.out"
238+
239+ // Check that compiler-rt library without the arch filename suffix will
25240- -
262412.47.0
27242
0 commit comments