diff --git a/arm-software/embedded/arm-runtimes/CMakeLists.txt b/arm-software/embedded/arm-runtimes/CMakeLists.txt index 432f416c7b1e..d33ad9cc9bfc 100644 --- a/arm-software/embedded/arm-runtimes/CMakeLists.txt +++ b/arm-software/embedded/arm-runtimes/CMakeLists.txt @@ -296,6 +296,7 @@ ExternalProject_Add( -DCOMPILER_RT_BUILD_SANITIZERS=OFF -DCOMPILER_RT_BUILD_XRAY=OFF -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON + -DCOMPILER_RT_EXCLUDE_LIBC_PROVIDED_ARM_AEABI_BUILTINS=ON -DLLVM_CMAKE_DIR=${LLVM_BINARY_DIR} -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON ${compiler_rt_test_cmake_args} diff --git a/arm-software/embedded/patches/llvm-project/0008-library-order-workaround-for-597.patch b/arm-software/embedded/patches/llvm-project/0008-library-order-workaround-for-597.patch deleted file mode 100644 index 6854fe3ff27e..000000000000 --- a/arm-software/embedded/patches/llvm-project/0008-library-order-workaround-for-597.patch +++ /dev/null @@ -1,242 +0,0 @@ -From 3c25466248617c03c4db62504b226f82b568be5e Mon Sep 17 00:00:00 2001 -From: Volodymyr Turanskyy -Date: Thu, 19 Dec 2024 12:01:58 +0000 -Subject: [PATCH] Revert order of libraries and update tests - ---- - clang/lib/Driver/ToolChains/BareMetal.cpp | 3 +- - clang/test/Driver/baremetal-multilib.yaml | 2 +- - clang/test/Driver/baremetal-sysroot.cpp | 2 +- - clang/test/Driver/baremetal.cpp | 38 +++++++++++------------ - 4 files changed, 22 insertions(+), 23 deletions(-) - -diff --git a/clang/lib/Driver/ToolChains/BareMetal.cpp b/clang/lib/Driver/ToolChains/BareMetal.cpp -index eecaaa9a4293..7d07079b5dd4 100644 ---- a/clang/lib/Driver/ToolChains/BareMetal.cpp -+++ b/clang/lib/Driver/ToolChains/BareMetal.cpp -@@ -491,9 +491,8 @@ void baremetal::Linker::ConstructJob(Compilation &C, const JobAction &JA, - } - - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { -- AddRunTimeLibs(TC, D, CmdArgs, Args); -- - CmdArgs.push_back("-lc"); -+ AddRunTimeLibs(TC, D, CmdArgs, Args); - } - - if (D.isUsingLTO()) { -diff --git a/clang/test/Driver/baremetal-multilib.yaml b/clang/test/Driver/baremetal-multilib.yaml -index 853a4e9e36e4..847b1d6b3377 100644 ---- a/clang/test/Driver/baremetal-multilib.yaml -+++ b/clang/test/Driver/baremetal-multilib.yaml -@@ -10,8 +10,8 @@ - # CHECK-SAME: "-x" "c++" "{{.*}}baremetal-multilib.yaml" - # CHECK-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - # CHECK-SAME: "-L[[SYSROOT]]/bin/../lib/clang-runtimes/arm-none-eabi/thumb/v8-m.main/fp/lib" --# CHECK-SAME: "{{[^"]*}}libclang_rt.builtins.a" - # CHECK-SAME: "-lc" -+# CHECK-SAME: "{{[^"]*}}libclang_rt.builtins.a" - # CHECK-SAME: "-o" "{{.*}}.tmp.out" - - # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c++ %s -### -o %t.out 2>&1 \ -diff --git a/clang/test/Driver/baremetal-sysroot.cpp b/clang/test/Driver/baremetal-sysroot.cpp -index 5cbb7ac69a7a..2b836e65016b 100644 ---- a/clang/test/Driver/baremetal-sysroot.cpp -+++ b/clang/test/Driver/baremetal-sysroot.cpp -@@ -18,6 +18,6 @@ - // 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: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-C-SAME: "-o" "{{.*}}.o" -diff --git a/clang/test/Driver/baremetal.cpp b/clang/test/Driver/baremetal.cpp -index 6d6255ef5970..08c49a1beec0 100644 ---- a/clang/test/Driver/baremetal.cpp -+++ b/clang/test/Driver/baremetal.cpp -@@ -19,8 +19,8 @@ - // CHECK-V6M-C-SAME: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o" - // CHECK-V6M-C-SAME: "-T" "semihosted.lds" "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" - // CHECK-V6M-C-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" --// CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-C-SAME: "-lc" -+// CHECK-V6M-C-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-C-SAME: "--target2=rel" "-o" "{{.*}}.tmp.out" - - // RUN: %clang %s -### --target=armv6m-none-eabi -nostdlibinc -nobuiltininc 2>&1 \ -@@ -42,8 +42,8 @@ - // CHECK-V6M-TREE-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL" - // CHECK-V6M-TREE-SAME: "[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}armv6m-unknown-none-eabi{{[/\\]+}}crt0.o" - // CHECK-V6M-TREE-SAME: "-L[[INSTALLED_DIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}armv6m-unknown-none-eabi" --// CHECK-V6M-TREE-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-TREE-SAME: "-lc" -+// CHECK-V6M-TREE-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-TREE-SAME: "--target2=rel" "-o" "{{.*}}.tmp.out" - - // RUN: %clang %s -### --target=armv7m-vendor-none-eabi -rtlib=compiler-rt 2>&1 \ -@@ -57,8 +57,8 @@ - // CHECK-ARMV7M-PER_TARGET: "[[SYSROOT:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}crt0.o" - // CHECK-ARMV7M-PER-TARGET: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" - // CHECK-ARMV7M-PER-TARGET: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}armv7m-vendor-none-eabi --// CHECK-ARMV7M-PER-TARGET: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-ARMV7M-PER-TARGET: "-lc" -+// CHECK-ARMV7M-PER-TARGET: "{{[^"]*}}libclang_rt.builtins.a" - - // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \ - // RUN: --sysroot=%S/Inputs/baremetal_arm | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s -@@ -68,8 +68,8 @@ - // CHECK-V6M-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" - // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" - // CHECK-V6M-DEFAULTCXX-SAME: "-lm" --// CHECK-V6M-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-DEFAULTCXX-SAME: "-lc" -+// CHECK-V6M-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-DEFAULTCXX-SAME: "--target2=rel" "-o" "a.out" - - // RUN: %clangxx %s -### --target=armv6m-none-eabi -stdlib=libc++ 2>&1 \ -@@ -81,8 +81,8 @@ - // CHECK-V6M-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" - // CHECK-V6M-LIBCXX-SAME: "-lc++" - // CHECK-V6M-LIBCXX-SAME: "-lm" --// CHECK-V6M-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-LIBCXX-SAME: "-lc" -+// CHECK-V6M-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-LIBCXX-SAME: "--target2=rel" "-o" "a.out" - - // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \ -@@ -95,8 +95,8 @@ - // CHECK-V6M-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" "-EL" - // CHECK-V6M-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}baremetal_arm{{[/\\]+}}lib" - // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lm" --// CHECK-V6M-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-LIBSTDCXX-SAME: "-lc" -+// CHECK-V6M-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-LIBSTDCXX-SAME: "--target2=rel" "-o" "a.out" - - // RUN: %clangxx %s -### --target=armv6m-none-eabi 2>&1 \ -@@ -120,8 +120,8 @@ - // CHECK-V6M-LIBCXX-USR: "{{[^"]*}}-Bstatic" - // CHECK-V6M-LIBCXX-USR-SAME: "-L{{[^"]*}}{{[/\\]+}}baremetal_cxx_sysroot{{[/\\]+}}lib" - // CHECK-V6M-LIBCXX-USR-SAME: "-lc++" "-lm" --// CHECK-V6M-LIBCXX-USR-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-V6M-LIBCXX-USR-SAME: "-lc" -+// CHECK-V6M-LIBCXX-USR-SAME: "{{[^"]*}}libclang_rt.builtins.a" - - // RUN: %clangxx --target=arm-none-eabi -v 2>&1 \ - // RUN: | FileCheck %s --check-prefix=CHECK-THREAD-MODEL -@@ -208,8 +208,8 @@ - // CHECK-RV64-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV64-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" - // CHECK-RV64-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" --// CHECK-RV64-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-SAME: "-lc" -+// CHECK-RV64-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-SAME: "-X" "-o" "{{.*}}.tmp.out" - - // RUN: %clangxx %s -### --target=riscv64-unknown-elf 2>&1 \ -@@ -219,8 +219,8 @@ - // CHECK-RV64-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV64-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" - // CHECK-RV64-DEFAULTCXX-SAME: "-lc++" "-lm" --// CHECK-RV64-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-DEFAULTCXX-SAME: "-lc" -+// CHECK-RV64-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-DEFAULTCXX-SAME: "-X" "-o" "a.out" - - // RUN: %clangxx %s -### --target=riscv64-unknown-elf 2>&1 \ -@@ -233,8 +233,8 @@ - // CHECK-RV64-LIBCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV64-LIBCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" - // CHECK-RV64-LIBCXX-SAME: "-lc++" "-lm" --// CHECK-RV64-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-LIBCXX-SAME: "-lc" -+// CHECK-RV64-LIBCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-LIBCXX-SAME: "-X" "-o" "a.out" - - // RUN: %clangxx %s -### 2>&1 --target=riscv64-unknown-elf \ -@@ -247,8 +247,8 @@ - // CHECK-RV64-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV64-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv64_tree{{[/\\]+}}riscv64-unknown-elf{{[/\\]+}}lib" - // CHECK-RV64-LIBSTDCXX-SAME: "-lstdc++" "-lm" --// CHECK-RV64-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-LIBSTDCXX-SAME: "-lc" -+// CHECK-RV64-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV64-LIBSTDCXX-SAME: "-X" "-o" "a.out" - - // RUN: %clang %s -### 2>&1 --target=riscv32-unknown-elf \ -@@ -264,8 +264,8 @@ - // CHECK-RV32-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV32-SAME: "-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for" - // CHECK-RV32-SAME: "-L[[SYSROOT:[^"]+]]{{[/\\]+}}lib" --// CHECK-RV32-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV32-SAME: "-lc" -+// CHECK-RV32-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV32-SAME: "-X" "-o" "a.out" - - // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \ -@@ -275,8 +275,8 @@ - // CHECK-RV32-DEFAULTCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV32-DEFAULTCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" - // CHECK-RV32-DEFAULTCXX-SAME: "-lc++" "-lm" --// CHECK-RV32-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV32-DEFAULTCXX-SAME: "-lc" -+// CHECK-RV32-DEFAULTCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-RV32-DEFAULTCXX-SAME: "-X" "-o" "a.out" - - // RUN: %clangxx %s -### 2>&1 --target=riscv32-unknown-elf \ -@@ -301,9 +301,9 @@ - // CHECK-RV32-LIBSTDCXX-SAME: "-internal-isystem" "{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}8.0.1" - // CHECK-RV32-LIBSTDCXX: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-RV32-LIBSTDCXX-SAME: "-L{{[^"]*}}{{[/\\]+}}Inputs{{[/\\]+}}basic_riscv32_tree{{[/\\]+}}riscv32-unknown-elf{{[/\\]+}}lib" --// CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lm" -+// CHECK-RV32-LIBSTDCXX-SAME: "-lstdc++" "-lm" "-lc" - // CHECK-RV32-LIBSTDCXX-SAME: "{{[^"]*}}libclang_rt.builtins.a" --// CHECK-RV32-LIBSTDCXX-SAME: "-lc" "-X" "-o" "a.out" -+// CHECK-RV32-LIBSTDCXX-SAME: "-X" "-o" "a.out" - - // RUN: %clang %s -### 2>&1 --target=riscv64-unknown-elf \ - // RUN: -nostdlibinc -nobuiltininc \ -@@ -425,8 +425,8 @@ - // CHECK-PPCEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include" - // CHECK-PPCEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-PPCEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib" --// CHECK-PPCEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPCEABI-SAME: "-lc" -+// CHECK-PPCEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPCEABI-SAME: "-o" "a.out" - - // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc64-unknown-eabi 2>&1 \ -@@ -439,8 +439,8 @@ - // CHECK-PPC64EABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include" - // CHECK-PPC64EABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-PPC64EABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib" --// CHECK-PPC64EABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPC64EABI-SAME: "-lc" -+// CHECK-PPC64EABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPC64EABI-SAME: "-o" "a.out" - - // RUN: %clang -no-canonical-prefixes %s -### --target=powerpcle-unknown-eabi 2>&1 \ -@@ -453,8 +453,8 @@ - // CHECK-PPCLEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include" - // CHECK-PPCLEEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-PPCLEEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib" --// CHECK-PPCLEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPCLEEABI-SAME: "-lc" -+// CHECK-PPCLEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPCLEEABI-SAME: "-o" "a.out" - - // RUN: %clang -no-canonical-prefixes %s -### --target=powerpc64le-unknown-eabi 2>&1 \ -@@ -467,8 +467,8 @@ - // CHECK-PPC64LEEABI-SAME: "-internal-isystem" "[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}include" - // CHECK-PPC64LEEABI-NEXT: ld{{(.exe)?}}" "{{.*}}.o" "-Bstatic" - // CHECK-PPC64LEEABI-SAME: "-L[[INSTALLEDDIR]]{{[/\\]+}}..{{[/\\]+}}lib{{[/\\]+}}clang-runtimes{{[/\\]+[^"]*}}lib" --// CHECK-PPC64LEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPC64LEEABI-SAME: "-lc" -+// CHECK-PPC64LEEABI-SAME: "{{[^"]*}}libclang_rt.builtins.a" - // CHECK-PPC64LEEABI-SAME: "-o" "a.out" - - // Check that compiler-rt library without the arch filename suffix will --- -2.47.0 -