mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-27 03:48:33 +00:00
Make FreeBSD and NetBSD use CLANG_DEFAULT_CXX_STDLIB
Also introduce -stdlib=platform to override the configured value and use it to make the tests always pass. Differential Revision: http://reviews.llvm.org/D17286 llvm-svn: 263434
This commit is contained in:
parent
cbcda9e077
commit
099541907f
clang
@ -555,16 +555,23 @@ static bool ParseCXXStdlibType(const StringRef& Name,
|
||||
ToolChain::CXXStdlibType ToolChain::GetCXXStdlibType(const ArgList &Args) const{
|
||||
ToolChain::CXXStdlibType Type;
|
||||
bool HasValidType = false;
|
||||
bool ForcePlatformDefault = false;
|
||||
|
||||
const Arg *A = Args.getLastArg(options::OPT_stdlib_EQ);
|
||||
if (A) {
|
||||
HasValidType = ParseCXXStdlibType(A->getValue(), Type);
|
||||
if (!HasValidType)
|
||||
StringRef Value = A->getValue();
|
||||
HasValidType = ParseCXXStdlibType(Value, Type);
|
||||
|
||||
// Only use in tests to override CLANG_DEFAULT_CXX_STDLIB!
|
||||
if (Value == "platform")
|
||||
ForcePlatformDefault = true;
|
||||
else if (!HasValidType)
|
||||
getDriver().Diag(diag::err_drv_invalid_stdlib_name)
|
||||
<< A->getAsString(Args);
|
||||
}
|
||||
|
||||
if (!HasValidType && !ParseCXXStdlibType(CLANG_DEFAULT_CXX_STDLIB, Type))
|
||||
if (!HasValidType && (ForcePlatformDefault ||
|
||||
!ParseCXXStdlibType(CLANG_DEFAULT_CXX_STDLIB, Type)))
|
||||
Type = GetDefaultCXXStdlibType();
|
||||
|
||||
return Type;
|
||||
|
@ -3106,16 +3106,7 @@ FreeBSD::FreeBSD(const Driver &D, const llvm::Triple &Triple,
|
||||
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
|
||||
}
|
||||
|
||||
ToolChain::CXXStdlibType FreeBSD::GetCXXStdlibType(const ArgList &Args) const {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {
|
||||
StringRef Value = A->getValue();
|
||||
if (Value == "libstdc++")
|
||||
return ToolChain::CST_Libstdcxx;
|
||||
if (Value == "libc++")
|
||||
return ToolChain::CST_Libcxx;
|
||||
|
||||
getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);
|
||||
}
|
||||
ToolChain::CXXStdlibType FreeBSD::GetDefaultCXXStdlibType() const {
|
||||
if (getTriple().getOSMajorVersion() >= 10)
|
||||
return ToolChain::CST_Libcxx;
|
||||
return ToolChain::CST_Libstdcxx;
|
||||
@ -3258,17 +3249,7 @@ Tool *NetBSD::buildAssembler() const {
|
||||
|
||||
Tool *NetBSD::buildLinker() const { return new tools::netbsd::Linker(*this); }
|
||||
|
||||
ToolChain::CXXStdlibType NetBSD::GetCXXStdlibType(const ArgList &Args) const {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {
|
||||
StringRef Value = A->getValue();
|
||||
if (Value == "libstdc++")
|
||||
return ToolChain::CST_Libstdcxx;
|
||||
if (Value == "libc++")
|
||||
return ToolChain::CST_Libcxx;
|
||||
|
||||
getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);
|
||||
}
|
||||
|
||||
ToolChain::CXXStdlibType NetBSD::GetDefaultCXXStdlibType() const {
|
||||
unsigned Major, Minor, Micro;
|
||||
getTriple().getOSVersion(Major, Minor, Micro);
|
||||
if (Major >= 7 || Major == 0) {
|
||||
|
@ -728,7 +728,7 @@ public:
|
||||
bool IsMathErrnoDefault() const override { return false; }
|
||||
bool IsObjCNonFragileABIDefault() const override { return true; }
|
||||
|
||||
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
|
||||
CXXStdlibType GetDefaultCXXStdlibType() const override;
|
||||
void AddClangCXXStdlibIncludeArgs(
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
@ -756,7 +756,7 @@ public:
|
||||
bool IsMathErrnoDefault() const override { return false; }
|
||||
bool IsObjCNonFragileABIDefault() const override { return true; }
|
||||
|
||||
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
|
||||
CXXStdlibType GetDefaultCXXStdlibType() const override;
|
||||
|
||||
void AddClangCXXStdlibIncludeArgs(
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
|
@ -1,13 +1,13 @@
|
||||
// RUN: %clangxx %s -### -o %t.o -target amd64-unknown-freebsd10.0 2>&1 \
|
||||
// RUN: %clangxx %s -### -o %t.o -target amd64-unknown-freebsd10.0 -stdlib=platform 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-TEN %s
|
||||
// RUN: %clangxx %s -### -o %t.o -target amd64-unknown-freebsd9.2 2>&1 \
|
||||
// RUN: %clangxx %s -### -o %t.o -target amd64-unknown-freebsd9.2 -stdlib=platform 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-NINE %s
|
||||
// CHECK-TEN: "-lc++" "-lm"
|
||||
// CHECK-NINE: "-lstdc++" "-lm"
|
||||
|
||||
// RUN: %clangxx %s -### -pg -o %t.o -target amd64-unknown-freebsd10.0 2>&1 \
|
||||
// RUN: %clangxx %s -### -pg -o %t.o -target amd64-unknown-freebsd10.0 -stdlib=platform 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-PG-TEN %s
|
||||
// RUN: %clangxx %s -### -pg -o %t.o -target amd64-unknown-freebsd9.2 2>&1 \
|
||||
// RUN: %clangxx %s -### -pg -o %t.o -target amd64-unknown-freebsd9.2 -stdlib=platform 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-PG-NINE %s
|
||||
// CHECK-PG-TEN: "-lc++_p" "-lm_p"
|
||||
// CHECK-PG-NINE: "-lstdc++_p" "-lm_p"
|
||||
|
@ -1,93 +1,93 @@
|
||||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=X86_64 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd7.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=X86_64-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd6.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=X86_64-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd6.0.0-eabi \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=ARM %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd7.0.0-eabi \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=ARM-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target aarch64--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=AARCH64 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target aarch64--netbsd7.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=AARCH64-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=SPARC %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc--netbsd6.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=SPARC-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc--netbsd7.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=SPARC-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc64--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=SPARC64 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc64--netbsd6.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=SPARC64-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc64--netbsd7.0.0 \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=SPARC64-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target powerpc--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=POWERPC %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target powerpc64--netbsd \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=POWERPC64 %s
|
||||
|
||||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-X86_64 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd7.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-X86_64-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target x86_64--netbsd6.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-X86_64-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd6.0.0-eabi -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-ARM %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target arm--netbsd7.0.0-eabi -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-ARM-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target aarch64--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-AARCH64 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target aarch64--netbsd7.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-AARCH64-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-SPARC %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc--netbsd6.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-SPARC-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc--netbsd7.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-SPARC-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc64--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-SPARC64 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc64--netbsd6.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-SPARC64-6 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target sparc64--netbsd7.0.0 -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-SPARC64-7 %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target powerpc--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-POWERPC %s
|
||||
// RUN: %clangxx -no-canonical-prefixes -target powerpc64--netbsd -static \
|
||||
// RUN: --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: -stdlib=platform --sysroot=%S/Inputs/basic_netbsd_tree %s -### 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=S-POWERPC64 %s
|
||||
|
||||
// X86_64: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd"
|
||||
|
Loading…
x
Reference in New Issue
Block a user