The handling of libc++ and other runtime libraries in the baremetal driver is different from other targets for no particular reason. This change removes the custom in the baremetal driver logic and replaces it with the generic logic to improve consistency and reduce maintenance overhead while also handling additional flags the current logic doesn't.
24 lines
1.5 KiB
C++
24 lines
1.5 KiB
C++
// REQUIRES: shell
|
|
// UNSUPPORTED: system-windows
|
|
|
|
// Test that when a --sysroot is not provided, driver picks the default
|
|
// location correctly if available.
|
|
|
|
// RUN: rm -rf %T/baremetal_default_sysroot
|
|
// RUN: mkdir -p %T/baremetal_default_sysroot/bin
|
|
// RUN: mkdir -p %T/baremetal_default_sysroot/lib/clang-runtimes/armv6m-none-eabi
|
|
// RUN: ln -s %clang %T/baremetal_default_sysroot/bin/clang
|
|
|
|
// RUN: %T/baremetal_default_sysroot/bin/clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
|
|
// RUN: -target armv6m-none-eabi --sysroot= \
|
|
// RUN: | FileCheck --check-prefix=CHECK-V6M-C %s
|
|
// CHECK-V6M-C: "{{.*}}clang{{.*}}" "-cc1" "-triple" "thumbv6m-unknown-none-eabi"
|
|
// CHECK-V6M-C-SAME: "-internal-isystem" "{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
|
|
// CHECk-V6M-C-SAME: "-internal-isystem" "{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}include"
|
|
// CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal-sysroot.cpp"
|
|
// CHECK-V6M-C-NEXT: "{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
|
|
// CHECK-V6M-C-SAME: "-L{{.*}}/baremetal_default_sysroot{{[/\\]+}}bin{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+}}armv6m-none-eabi{{[/\\]+}}lib"
|
|
// CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a"
|
|
// CHECK-V6M-C-SAME: "-lc"
|
|
// CHECK-V6M-C-SAME: "-o" "{{.*}}.o"
|