https://github.com/arichardson updated https://github.com/llvm/llvm-project/pull/126302
>From 6b89c65eb61a7c2565b96caedd11eb2efff61021 Mon Sep 17 00:00:00 2001 From: Alex Richardson <alexrichard...@google.com> Date: Fri, 7 Feb 2025 12:14:20 -0800 Subject: [PATCH 1/3] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?= =?UTF-8?q?itial=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created using spr 1.3.6-beta.1 --- clang/lib/Driver/ToolChains/FreeBSD.cpp | 10 +++++----- clang/test/Driver/experimental-library-flag.cpp | 5 +++++ clang/test/Driver/freebsd.cpp | 8 ++++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/clang/lib/Driver/ToolChains/FreeBSD.cpp b/clang/lib/Driver/ToolChains/FreeBSD.cpp index a6d859f0ebfec..bd6ab0f8aba57 100644 --- a/clang/lib/Driver/ToolChains/FreeBSD.cpp +++ b/clang/lib/Driver/ToolChains/FreeBSD.cpp @@ -452,12 +452,12 @@ void FreeBSD::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, void FreeBSD::AddCXXStdlibLibArgs(const ArgList &Args, ArgStringList &CmdArgs) const { + Generic_ELF::AddCXXStdlibLibArgs(Args, CmdArgs); unsigned Major = getTriple().getOSMajorVersion(); - bool Profiling = Args.hasArg(options::OPT_pg) && Major != 0 && Major < 14; - - CmdArgs.push_back(Profiling ? "-lc++_p" : "-lc++"); - if (Args.hasArg(options::OPT_fexperimental_library)) - CmdArgs.push_back("-lc++experimental"); + bool SuffixedLib = Args.hasArg(options::OPT_pg) && Major != 0 && Major < 14; + if (SuffixedLib && GetCXXStdlibType(Args) == CST_Libcxx) + llvm::replace(CmdArgs, static_cast<const char *>("-lc++"), + static_cast<const char *>("-lc++_p")); } void FreeBSD::AddCudaIncludeArgs(const ArgList &DriverArgs, diff --git a/clang/test/Driver/experimental-library-flag.cpp b/clang/test/Driver/experimental-library-flag.cpp index db6a90b50f255..62b007516897e 100644 --- a/clang/test/Driver/experimental-library-flag.cpp +++ b/clang/test/Driver/experimental-library-flag.cpp @@ -9,6 +9,11 @@ // RUN: %clangxx -fexperimental-library -stdlib=libstdc++ -### %s 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-LIBSTDCXX %s // RUN: %clangxx -fexperimental-library -stdlib=libc++ -nostdlib++ -### %s 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-NOSTDLIB %s +/// The FreeBSD driver did not support -stdlib=libstdc++ previously, check that it does the right thing here. +// RUN: %clangxx --target=x86_64-unknown-freebsd -fexperimental-library -stdlib=libc++ -### %s 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-LIBCXX %s +// RUN: %clangxx --target=x86_64-unknown-freebsd -fexperimental-library -stdlib=libstdc++ -### %s 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-LIBSTDCXX %s +// RUN: %clangxx --target=x86_64-unknown-freebsd -fexperimental-library -stdlib=libc++ -nostdlib++ -### %s 2>&1 | FileCheck --check-prefixes=CHECK,CHECK-NOSTDLIB %s + // -fexperimental-library must be passed to CC1. // CHECK: -fexperimental-library diff --git a/clang/test/Driver/freebsd.cpp b/clang/test/Driver/freebsd.cpp index dc8c98d3c3cb7..af6b873a387f1 100644 --- a/clang/test/Driver/freebsd.cpp +++ b/clang/test/Driver/freebsd.cpp @@ -1,9 +1,13 @@ // RUN: %clangxx %s -### -o %t.o --target=amd64-unknown-freebsd -stdlib=platform 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s // RUN: %clangxx %s -### -o %t.o --target=amd64-unknown-freebsd10.0 -stdlib=platform 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-TEN %s +// RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s +// RUN: %clangxx %s -### -o %t.o --target=amdf64-unknown-freebsd -stdlib=libc++ 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s +// RUN: %clangxx %s -### -o %t.o --target=amd64-unknown-freebsd -stdlib=libstdc++ 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-STDLIBCXX %s // CHECK-DEFAULT: "-lc++" "-lm" -// CHECK-TEN: "-lc++" "-lm" +// CHECK-STDLIBCXX: "-lstdc++" "-lm" // RUN: %clangxx %s -### -pg -o %t.o --target=amd64-unknown-freebsd -stdlib=platform 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-PG-DEFAULT %s >From 3041071ae278445345602cb042d9f756a68456a4 Mon Sep 17 00:00:00 2001 From: Alex Richardson <alexrichard...@google.com> Date: Fri, 7 Feb 2025 12:16:10 -0800 Subject: [PATCH 2/3] typo fix in RUN line Created using spr 1.3.6-beta.1 --- clang/test/Driver/freebsd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/Driver/freebsd.cpp b/clang/test/Driver/freebsd.cpp index af6b873a387f1..768a6f4ed4d18 100644 --- a/clang/test/Driver/freebsd.cpp +++ b/clang/test/Driver/freebsd.cpp @@ -2,7 +2,7 @@ // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s // RUN: %clangxx %s -### -o %t.o --target=amd64-unknown-freebsd10.0 -stdlib=platform 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s -// RUN: %clangxx %s -### -o %t.o --target=amdf64-unknown-freebsd -stdlib=libc++ 2>&1 \ +// RUN: %clangxx %s -### -o %t.o --target=amd64-unknown-freebsd -stdlib=libc++ 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s // RUN: %clangxx %s -### -o %t.o --target=amd64-unknown-freebsd -stdlib=libstdc++ 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-STDLIBCXX %s >From 358235baf643544ed6038d4f6ce060d1af0b42f9 Mon Sep 17 00:00:00 2001 From: Alex Richardson <alexrichard...@google.com> Date: Sun, 16 Feb 2025 12:32:22 -0800 Subject: [PATCH 3/3] fix typo in RUN line Created using spr 1.3.6-beta.1 --- clang/test/Driver/freebsd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/Driver/freebsd.cpp b/clang/test/Driver/freebsd.cpp index 6cc8e215a7796..e2f76cd013f7f 100644 --- a/clang/test/Driver/freebsd.cpp +++ b/clang/test/Driver/freebsd.cpp @@ -4,7 +4,7 @@ // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s // RUN: %clangxx %s -### --target=amd64-unknown-freebsd -stdlib=libc++ 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-DEFAULT %s -// RUN: %clangxx %s -### -target=amd64-unknown-freebsd -stdlib=libstdc++ 2>&1 \ +// RUN: %clangxx %s -### --target=amd64-unknown-freebsd -stdlib=libstdc++ 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-STDLIBCXX %s // CHECK-DEFAULT: "-lc++" "-lm" // CHECK-STDLIBCXX: "-lstdc++" "-lm" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits