From 083d74c4f283ff0db5c195cc692847f1162f2414 Mon Sep 17 00:00:00 2001 From: Volodymyr Turanskyy Date: Thu, 19 Dec 2024 12:09:29 +0000 Subject: [PATCH] Update the #597 workaround patch to also fix tests --- ...008-library-order-workaround-for-597.patch | 225 +++++++++++++++++- 1 file changed, 220 insertions(+), 5 deletions(-) diff --git a/patches/llvm-project/0008-library-order-workaround-for-597.patch b/patches/llvm-project/0008-library-order-workaround-for-597.patch index 70bb0762..6854fe3f 100644 --- a/patches/llvm-project/0008-library-order-workaround-for-597.patch +++ b/patches/llvm-project/0008-library-order-workaround-for-597.patch @@ -1,11 +1,14 @@ -From f037d9740bf53cf43142595330355a3b61304dd7 Mon Sep 17 00:00:00 2001 +From 3c25466248617c03c4db62504b226f82b568be5e Mon Sep 17 00:00:00 2001 From: Volodymyr Turanskyy -Date: Wed, 18 Dec 2024 16:29:25 +0000 -Subject: [PATCH] Revert order of libraries on the command line +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 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + 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 @@ -22,6 +25,218 @@ index eecaaa9a4293..7d07079b5dd4 100644 } 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