Skip to content

Commit 3bc40ad

Browse files
committed
[RISCV][Driver] Add support for -m flag to linker job of Baremetal toolchain.
Change-Id: Ifce8a3a7f1df9c12561d35ca3c923595e3619428
1 parent a126354 commit 3bc40ad

File tree

7 files changed

+125
-111
lines changed

7 files changed

+125
-111
lines changed

clang/lib/Driver/ToolChains/BareMetal.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,8 +575,19 @@ void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA,
575575

576576
CmdArgs.push_back("-Bstatic");
577577

578-
if (TC.getTriple().isRISCV() && Args.hasArg(options::OPT_mno_relax))
579-
CmdArgs.push_back("--no-relax");
578+
if (const char *LDMOption = getLDMOption(TC.getTriple(), Args)) {
579+
CmdArgs.push_back("-m");
580+
CmdArgs.push_back(LDMOption);
581+
} else {
582+
D.Diag(diag::err_target_unknown_triple) << Triple.str();
583+
return;
584+
}
585+
586+
if (Triple.isRISCV()) {
587+
CmdArgs.push_back("-X");
588+
if (Args.hasArg(options::OPT_mno_relax))
589+
CmdArgs.push_back("--no-relax");
590+
}
580591

581592
if (Triple.isARM() || Triple.isThumb()) {
582593
bool IsBigEndian = arm::isARMBigEndian(Triple, Args);

clang/lib/Driver/ToolChains/CommonArgs.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,76 @@ void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,
535535
}
536536
}
537537

538+
const char *tools::getLDMOption(const llvm::Triple &T, const ArgList &Args) {
539+
switch (T.getArch()) {
540+
case llvm::Triple::x86:
541+
if (T.isOSIAMCU())
542+
return "elf_iamcu";
543+
return "elf_i386";
544+
case llvm::Triple::aarch64:
545+
return "aarch64linux";
546+
case llvm::Triple::aarch64_be:
547+
return "aarch64linuxb";
548+
case llvm::Triple::arm:
549+
case llvm::Triple::thumb:
550+
case llvm::Triple::armeb:
551+
case llvm::Triple::thumbeb:
552+
return tools::arm::isARMBigEndian(T, Args) ? "armelfb_linux_eabi"
553+
: "armelf_linux_eabi";
554+
case llvm::Triple::m68k:
555+
return "m68kelf";
556+
case llvm::Triple::ppc:
557+
if (T.isOSLinux())
558+
return "elf32ppclinux";
559+
return "elf32ppc";
560+
case llvm::Triple::ppcle:
561+
if (T.isOSLinux())
562+
return "elf32lppclinux";
563+
return "elf32lppc";
564+
case llvm::Triple::ppc64:
565+
return "elf64ppc";
566+
case llvm::Triple::ppc64le:
567+
return "elf64lppc";
568+
case llvm::Triple::riscv32:
569+
return "elf32lriscv";
570+
case llvm::Triple::riscv64:
571+
return "elf64lriscv";
572+
case llvm::Triple::sparc:
573+
case llvm::Triple::sparcel:
574+
return "elf32_sparc";
575+
case llvm::Triple::sparcv9:
576+
return "elf64_sparc";
577+
case llvm::Triple::loongarch32:
578+
return "elf32loongarch";
579+
case llvm::Triple::loongarch64:
580+
return "elf64loongarch";
581+
case llvm::Triple::mips:
582+
return "elf32btsmip";
583+
case llvm::Triple::mipsel:
584+
return "elf32ltsmip";
585+
case llvm::Triple::mips64:
586+
if (tools::mips::hasMipsAbiArg(Args, "n32") || T.isABIN32())
587+
return "elf32btsmipn32";
588+
return "elf64btsmip";
589+
case llvm::Triple::mips64el:
590+
if (tools::mips::hasMipsAbiArg(Args, "n32") || T.isABIN32())
591+
return "elf32ltsmipn32";
592+
return "elf64ltsmip";
593+
case llvm::Triple::systemz:
594+
return "elf64_s390";
595+
case llvm::Triple::x86_64:
596+
if (T.isX32())
597+
return "elf32_x86_64";
598+
return "elf_x86_64";
599+
case llvm::Triple::ve:
600+
return "elf64ve";
601+
case llvm::Triple::csky:
602+
return "cskyelf_linux";
603+
default:
604+
return nullptr;
605+
}
606+
}
607+
538608
void tools::addLinkerCompressDebugSectionsOption(
539609
const ToolChain &TC, const llvm::opt::ArgList &Args,
540610
llvm::opt::ArgStringList &CmdArgs) {

clang/lib/Driver/ToolChains/CommonArgs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ void AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,
3131
const llvm::opt::ArgList &Args,
3232
llvm::opt::ArgStringList &CmdArgs, const JobAction &JA);
3333

34+
const char *getLDMOption(const llvm::Triple &T, const llvm::opt::ArgList &Args);
35+
3436
void addLinkerCompressDebugSectionsOption(const ToolChain &TC,
3537
const llvm::opt::ArgList &Args,
3638
llvm::opt::ArgStringList &CmdArgs);

clang/lib/Driver/ToolChains/Gnu.cpp

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -221,76 +221,6 @@ void tools::gcc::Linker::RenderExtraToolArgs(const JobAction &JA,
221221
// The types are (hopefully) good enough.
222222
}
223223

224-
static const char *getLDMOption(const llvm::Triple &T, const ArgList &Args) {
225-
switch (T.getArch()) {
226-
case llvm::Triple::x86:
227-
if (T.isOSIAMCU())
228-
return "elf_iamcu";
229-
return "elf_i386";
230-
case llvm::Triple::aarch64:
231-
return "aarch64linux";
232-
case llvm::Triple::aarch64_be:
233-
return "aarch64linuxb";
234-
case llvm::Triple::arm:
235-
case llvm::Triple::thumb:
236-
case llvm::Triple::armeb:
237-
case llvm::Triple::thumbeb:
238-
return tools::arm::isARMBigEndian(T, Args) ? "armelfb_linux_eabi"
239-
: "armelf_linux_eabi";
240-
case llvm::Triple::m68k:
241-
return "m68kelf";
242-
case llvm::Triple::ppc:
243-
if (T.isOSLinux())
244-
return "elf32ppclinux";
245-
return "elf32ppc";
246-
case llvm::Triple::ppcle:
247-
if (T.isOSLinux())
248-
return "elf32lppclinux";
249-
return "elf32lppc";
250-
case llvm::Triple::ppc64:
251-
return "elf64ppc";
252-
case llvm::Triple::ppc64le:
253-
return "elf64lppc";
254-
case llvm::Triple::riscv32:
255-
return "elf32lriscv";
256-
case llvm::Triple::riscv64:
257-
return "elf64lriscv";
258-
case llvm::Triple::sparc:
259-
case llvm::Triple::sparcel:
260-
return "elf32_sparc";
261-
case llvm::Triple::sparcv9:
262-
return "elf64_sparc";
263-
case llvm::Triple::loongarch32:
264-
return "elf32loongarch";
265-
case llvm::Triple::loongarch64:
266-
return "elf64loongarch";
267-
case llvm::Triple::mips:
268-
return "elf32btsmip";
269-
case llvm::Triple::mipsel:
270-
return "elf32ltsmip";
271-
case llvm::Triple::mips64:
272-
if (tools::mips::hasMipsAbiArg(Args, "n32") || T.isABIN32())
273-
return "elf32btsmipn32";
274-
return "elf64btsmip";
275-
case llvm::Triple::mips64el:
276-
if (tools::mips::hasMipsAbiArg(Args, "n32") || T.isABIN32())
277-
return "elf32ltsmipn32";
278-
return "elf64ltsmip";
279-
case llvm::Triple::systemz:
280-
return "elf64_s390";
281-
case llvm::Triple::x86_64:
282-
if (T.isX32())
283-
return "elf32_x86_64";
284-
return "elf_x86_64";
285-
case llvm::Triple::ve:
286-
return "elf64ve";
287-
case llvm::Triple::csky:
288-
return "cskyelf_linux";
289-
default:
290-
return nullptr;
291-
}
292-
}
293-
294224
static bool getStaticPIE(const ArgList &Args, const ToolChain &TC) {
295225
bool HasStaticPIE = Args.hasArg(options::OPT_static_pie);
296226
if (HasStaticPIE && Args.hasArg(options::OPT_no_pie)) {

clang/test/Driver/aarch64-toolchain.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// LLD-AARCH64-BAREMETAL: "-isysroot" "{{.*}}Inputs/basic_aarch64_gcc_tree/aarch64-none-elf"
1212
// LLD-AARCH64-BAREMETAL: "-internal-isystem" "{{.*}}Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/include"
1313
// LLD-AARCH64-BAREMETAL: "{{.*}}/Inputs/lld/ld.lld"
14-
// LLD-AARCH64-BAREMETAL: "-Bstatic" "-EL"
14+
// LLD-AARCH64-BAREMETAL: "-Bstatic" "-m" "aarch64linux" "-EL"
1515
// LLD-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/lib/crt0.o"
1616
// LLD-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
1717
// LLD-AARCH64-BAREMETAL: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"
@@ -30,7 +30,7 @@
3030
// C-AARCH64-BAREMETAL: "-internal-isystem" "{{.*}}Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/include"
3131
// C-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../bin/aarch64-none-elf-ld"
3232
// C-AARCH64-BAREMETAL: "--sysroot={{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf"
33-
// C-AARCH64-BAREMETAL: "-Bstatic" "-EL"
33+
// C-AARCH64-BAREMETAL: "-Bstatic" "-m" "aarch64linux" "-EL"
3434
// C-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/lib/crt0.o"
3535
// C-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
3636
// C-AARCH64-BAREMETAL: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"
@@ -47,7 +47,7 @@
4747
// C-AARCH64-BAREMETAL-NOSYSROOT: "-cc1" "-triple" "aarch64-unknown-none-elf"
4848
// C-AARCH64-BAREMETAL-NOSYSROOT: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/include"
4949
// C-AARCH64-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../bin/aarch64-none-elf-ld"
50-
// C-AARCH64-BAREMETAL-NOSYSROOT: "-Bstatic" "-EL"
50+
// C-AARCH64-BAREMETAL-NOSYSROOT: "-Bstatic" "-m" "aarch64linux" "-EL"
5151
// C-AARCH64-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/lib/crt0.o"
5252
// C-AARCH64-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
5353
// C-AARCH64-BAREMETAL-NOSYSROOT: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"
@@ -67,7 +67,7 @@
6767
// CXX-AARCH64-BAREMETAL: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/include"
6868
// CXX-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../bin/aarch64-none-elf-ld"
6969
// CXX-AARCH64-BAREMETAL: "--sysroot={{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf"
70-
// CXX-AARCH64-BAREMETAL: "-Bstatic" "-EL"
70+
// CXX-AARCH64-BAREMETAL: "-Bstatic" "-m" "aarch64linux" "-EL"
7171
// CXX-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/lib/crt0.o"
7272
// CXX-AARCH64-BAREMETAL: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
7373
// CXX-AARCH64-BAREMETAL: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"
@@ -86,7 +86,7 @@
8686
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/include/c++/8.2.1"
8787
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/include"
8888
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../bin/aarch64-none-elf-ld"
89-
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "-Bstatic" "-EL"
89+
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "-Bstatic" "-m" "aarch64linux" "-EL"
9090
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/lib/crt0.o"
9191
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
9292
// CXX-AARCH64-BAREMETAL-NOSYSROOT: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"
@@ -105,7 +105,7 @@
105105
// CXX-AARCH64-BAREMETAL-LIBCXX: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/include"
106106
// CXX-AARCH64-BAREMETAL-LIBCXX: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../bin/aarch64-none-elf-ld"
107107
// CXX-AARCH64-BAREMETAL-LIBCXX: "--sysroot={{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf"
108-
// CXX-AARCH64-BAREMETAL-LIBCXX: "-Bstatic" "-EL"
108+
// CXX-AARCH64-BAREMETAL-LIBCXX: "-Bstatic" "-m" "aarch64linux" "-EL"
109109
// CXX-AARCH64-BAREMETAL-LIBCXX: "{{.*}}/Inputs/basic_aarch64_gcc_tree/aarch64-none-elf/lib/crt0.o"
110110
// CXX-AARCH64-BAREMETAL-LIBCXX: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
111111
// CXX-AARCH64-BAREMETAL-LIBCXX: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"
@@ -122,7 +122,7 @@
122122
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/include/c++/v1"
123123
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "-internal-isystem" "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/include"
124124
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../bin/aarch64-none-elf-ld"
125-
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "-Bstatic" "-EL"
125+
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "-Bstatic" "-m" "aarch64linux" "-EL"
126126
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/../../../../aarch64-none-elf/lib/crt0.o"
127127
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1/crtbegin.o"
128128
// CXX-AARCH64-BAREMETAL-NOSYSROOT-LIBCXX: "-L{{.*}}/Inputs/basic_aarch64_gcc_tree/lib/gcc/aarch64-none-elf/8.2.1"

clang/test/Driver/arm-toolchain.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// LLD-ARM-BAREMETAL: "-isysroot" "{{.*}}Inputs/basic_arm_gcc_tree/armv6m-none-eabi"
1111
// LLD-ARM-BAREMETAL: "-internal-isystem" "{{.*}}Inputs/basic_arm_gcc_tree/armv6m-none-eabi/include"
1212
// LLD-ARM-BAREMETAL: "{{.*}}/Inputs/lld/ld.lld"
13-
// LLD-ARM-BAREMETAL: "-Bstatic" "-EL"
13+
// LLD-ARM-BAREMETAL: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
1414
// LLD-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi/lib/crt0.o"
1515
// LLD-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
1616
// LLD-ARM-BAREMETAL: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"
@@ -29,7 +29,7 @@
2929
// C-ARM-BAREMETAL: "-internal-isystem" "{{.*}}Inputs/basic_arm_gcc_tree/armv6m-none-eabi/include"
3030
// C-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../bin/armv6m-none-eabi-ld"
3131
// C-ARM-BAREMETAL: "--sysroot={{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi"
32-
// C-ARM-BAREMETAL: "-Bstatic" "-EL"
32+
// C-ARM-BAREMETAL: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
3333
// C-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi/lib/crt0.o"
3434
// C-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
3535
// C-ARM-BAREMETAL: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"
@@ -46,7 +46,7 @@
4646
// C-ARM-BAREMETAL-NOSYSROOT: "-cc1" "-triple" "thumbv6m-unknown-none-eabi"
4747
// C-ARM-BAREMETAL-NOSYSROOT: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/include"
4848
// C-ARM-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../bin/armv6m-none-eabi-ld"
49-
// C-ARM-BAREMETAL-NOSYSROOT: "-Bstatic" "-EL"
49+
// C-ARM-BAREMETAL-NOSYSROOT: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
5050
// C-ARM-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/lib/crt0.o"
5151
// C-ARM-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
5252
// C-ARM-BAREMETAL-NOSYSROOT: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"
@@ -67,7 +67,7 @@
6767
// CXX-ARM-BAREMETAL: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi/include"
6868
// CXX-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../bin/armv6m-none-eabi-ld"
6969
// CXX-ARM-BAREMETAL: "--sysroot={{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi"
70-
// CXX-ARM-BAREMETAL: "-Bstatic" "-EL"
70+
// CXX-ARM-BAREMETAL: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
7171
// CXX-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi/lib/crt0.o"
7272
// CXX-ARM-BAREMETAL: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
7373
// CXX-ARM-BAREMETAL: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"
@@ -87,7 +87,7 @@
8787
// CXX-ARM-BAREMETAL-NOSYSROOT: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/include/c++/8.2.1"
8888
// CXX-ARM-BAREMETAL-NOSYSROOT: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/include"
8989
// CXX-ARM-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../bin/armv6m-none-eabi-ld"
90-
// CXX-ARM-BAREMETAL-NOSYSROOT: "-Bstatic" "-EL"
90+
// CXX-ARM-BAREMETAL-NOSYSROOT: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
9191
// CXX-ARM-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/lib/crt0.o"
9292
// CXX-ARM-BAREMETAL-NOSYSROOT: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
9393
// CXX-ARM-BAREMETAL-NOSYSROOT: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"
@@ -106,7 +106,7 @@
106106
// CXX-ARM-BAREMETAL-LIBCXX: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi/include"
107107
// CXX-ARM-BAREMETAL-LIBCXX: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../bin/armv6m-none-eabi-ld"
108108
// CXX-ARM-BAREMETAL-LIBCXX: "--sysroot={{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi"
109-
// CXX-ARM-BAREMETAL-LIBCXX: "-Bstatic" "-EL"
109+
// CXX-ARM-BAREMETAL-LIBCXX: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
110110
// CXX-ARM-BAREMETAL-LIBCXX: "{{.*}}/Inputs/basic_arm_gcc_tree/armv6m-none-eabi/lib/crt0.o"
111111
// CXX-ARM-BAREMETAL-LIBCXX: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
112112
// CXX-ARM-BAREMETAL-LIBCXX: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"
@@ -123,7 +123,7 @@
123123
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/include/c++/v1"
124124
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "-internal-isystem" "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/include"
125125
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../bin/armv6m-none-eabi-ld"
126-
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "-Bstatic" "-EL"
126+
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "-Bstatic" "-m" "armelf_linux_eabi" "-EL"
127127
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/../../../../armv6m-none-eabi/lib/crt0.o"
128128
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1/crtbegin.o"
129129
// CXX-ARM-BAREMETAL-NOSYSROOT-LIBCXX: "-L{{.*}}/Inputs/basic_arm_gcc_tree/lib/gcc/armv6m-none-eabi/8.2.1"

0 commit comments

Comments
 (0)