Skip to content

Commit 43f5773

Browse files
committed
[RISCV][Driver] Add support for -m flag to linker job of Baremetal toolchain.
Change-Id: Ifce8a3a7f1df9c12561d35ca3c923595e3619428
1 parent 8b9b09a commit 43f5773

File tree

7 files changed

+125
-111
lines changed

7 files changed

+125
-111
lines changed

clang/include/clang/Driver/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/BareMetal.cpp

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

574574
CmdArgs.push_back("-Bstatic");
575575

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

579590
if (Triple.isARM() || Triple.isThumb()) {
580591
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
@@ -527,6 +527,76 @@ void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,
527527
}
528528
}
529529

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

clang/lib/Driver/ToolChains/Gnu.cpp

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

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