-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[llvm][Triple] Add libc-less variants of some environments #168042
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
@llvm/pr-subscribers-clang-driver @llvm/pr-subscribers-backend-loongarch Author: Alex Rønne Petersen (alexrp) ChangesIn Zig, building libc-less binaries is a first-class use case. As such, we would like to have environment names that indicate the ABI but without implying anything about libc. This is in line with the existing Full diff: https://github.com/llvm/llvm-project/pull/168042.diff 7 Files Affected:
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 9fd64d4aac514..bdb69434c94ba 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -808,6 +808,8 @@ static llvm::Triple computeTargetTriple(const Driver &D,
else if (Target.getEnvironment() == llvm::Triple::Musl ||
Target.getEnvironment() == llvm::Triple::MuslABI64)
Target.setEnvironment(llvm::Triple::MuslABIN32);
+ else
+ Target.setEnvironment(llvm::Triple::ABIN32);
} else if (ABIName == "64") {
Target = Target.get64BitArchVariant();
if (Target.getEnvironment() == llvm::Triple::GNU ||
@@ -817,6 +819,8 @@ static llvm::Triple computeTargetTriple(const Driver &D,
else if (Target.getEnvironment() == llvm::Triple::Musl ||
Target.getEnvironment() == llvm::Triple::MuslABIN32)
Target.setEnvironment(llvm::Triple::MuslABI64);
+ else
+ Target.setEnvironment(llvm::Triple::ABI64);
}
}
}
diff --git a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
index da084bdabaee3..67e7e3d37a5ad 100644
--- a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
@@ -102,9 +102,11 @@ StringRef loongarch::getLoongArchABI(const Driver &D, const ArgList &Args,
// Honor the explicit ABI modifier suffix in triple's environment part if
// present, falling back to {ILP32,LP64}D otherwise.
switch (Triple.getEnvironment()) {
+ case llvm::Triple::SF:
case llvm::Triple::GNUSF:
case llvm::Triple::MuslSF:
return IsLA32 ? "ilp32s" : "lp64s";
+ case llvm::Triple::F32:
case llvm::Triple::GNUF32:
case llvm::Triple::MuslF32:
return IsLA32 ? "ilp32f" : "lp64f";
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 020e7465548fe..2a207418ecc05 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -107,10 +107,12 @@ std::string Linux::getMultiarchTriple(const Driver &D,
switch (TargetEnvironment) {
default:
return TargetTriple.str();
+ case llvm::Triple::SF:
case llvm::Triple::GNUSF:
case llvm::Triple::MuslSF:
FPFlavor = "sf";
break;
+ case llvm::Triple::F32:
case llvm::Triple::GNUF32:
case llvm::Triple::MuslF32:
FPFlavor = "f32";
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
index 11b76cd183108..8b6899b07af05 100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -253,6 +253,14 @@ class Triple {
enum EnvironmentType {
UnknownEnvironment,
+ ABIN32,
+ ABI64,
+ EABI,
+ EABIHF,
+ F32,
+ SF,
+ X32,
+
GNU,
GNUT64,
GNUABIN32,
@@ -266,10 +274,7 @@ class Triple {
GNUSF,
GNUX32,
GNUILP32,
- CODE16,
- EABI,
- EABIHF,
- Android,
+
Musl,
MuslABIN32,
MuslABI64,
@@ -279,12 +284,16 @@ class Triple {
MuslSF,
MuslX32,
MuslWALI,
+
+ Android,
+ CODE16,
LLVM,
MSVC,
Itanium,
Cygnus,
CoreCLR,
+
Simulator, // Simulator variants of other systems, e.g., Apple's iOS
MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
@@ -1157,13 +1166,15 @@ class Triple {
// Tests whether the target is N32.
bool isABIN32() const {
EnvironmentType Env = getEnvironment();
- return Env == Triple::GNUABIN32 || Env == Triple::MuslABIN32;
+ return Env == Triple::GNUABIN32 || Env == Triple::MuslABIN32 ||
+ Env == Triple::ABIN32;
}
/// Tests whether the target is X32.
bool isX32() const {
EnvironmentType Env = getEnvironment();
- return Env == Triple::GNUX32 || Env == Triple::MuslX32;
+ return Env == Triple::GNUX32 || Env == Triple::MuslX32 ||
+ Env == Triple::X32;
}
/// Tests whether the target is eBPF.
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
index 7cefb3f8119b8..13d77327d8b6c 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
@@ -55,10 +55,12 @@ static ABI getTripleABI(const Triple &TT) {
case llvm::Triple::EnvironmentType::UnknownEnvironment:
TripleABI = ABI_Unknown;
break;
+ case llvm::Triple::EnvironmentType::SF:
case llvm::Triple::EnvironmentType::GNUSF:
case llvm::Triple::EnvironmentType::MuslSF:
TripleABI = Is64Bit ? ABI_LP64S : ABI_ILP32S;
break;
+ case llvm::Triple::EnvironmentType::F32:
case llvm::Triple::EnvironmentType::GNUF32:
case llvm::Triple::EnvironmentType::MuslF32:
TripleABI = Is64Bit ? ABI_LP64F : ABI_ILP32F;
diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp
index 11ba9ee32f66a..f1e621af44592 100644
--- a/llvm/lib/TargetParser/Triple.cpp
+++ b/llvm/lib/TargetParser/Triple.cpp
@@ -345,8 +345,18 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) {
case CODE16: return "code16";
case CoreCLR: return "coreclr";
case Cygnus: return "cygnus";
+ case ABIN32:
+ return "abin32";
+ case ABI64:
+ return "abi64";
case EABI: return "eabi";
case EABIHF: return "eabihf";
+ case F32:
+ return "f32";
+ case SF:
+ return "sf";
+ case X32:
+ return "x32";
case GNU: return "gnu";
case GNUT64: return "gnut64";
case GNUABI64: return "gnuabi64";
@@ -747,8 +757,13 @@ static Triple::OSType parseOS(StringRef OSName) {
static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
return StringSwitch<Triple::EnvironmentType>(EnvironmentName)
+ .StartsWith("abin32", Triple::ABIN32)
+ .StartsWith("abi64", Triple::ABI64)
.StartsWith("eabihf", Triple::EABIHF)
.StartsWith("eabi", Triple::EABI)
+ .StartsWith("f32", Triple::F32)
+ .StartsWith("sf", Triple::SF)
+ .StartsWith("x32", Triple::X32)
.StartsWith("gnuabin32", Triple::GNUABIN32)
.StartsWith("gnuabi64", Triple::GNUABI64)
.StartsWith("gnueabihft64", Triple::GNUEABIHFT64)
diff --git a/llvm/unittests/TargetParser/TripleTest.cpp b/llvm/unittests/TargetParser/TripleTest.cpp
index df8284d7be66a..d986926c2945c 100644
--- a/llvm/unittests/TargetParser/TripleTest.cpp
+++ b/llvm/unittests/TargetParser/TripleTest.cpp
@@ -121,6 +121,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::Linux, T.getOS());
EXPECT_EQ(Triple::MuslX32, T.getEnvironment());
+ T = Triple("x86_64-pc-linux-x32");
+ EXPECT_EQ(Triple::x86_64, T.getArch());
+ EXPECT_EQ(Triple::PC, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::X32, T.getEnvironment());
+
T = Triple("x86_64-pc-hurd-gnu");
EXPECT_EQ(Triple::x86_64, T.getArch());
EXPECT_EQ(Triple::PC, T.getVendor());
@@ -728,12 +734,24 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::Linux, T.getOS());
EXPECT_EQ(Triple::MuslF32, T.getEnvironment());
+ T = Triple("loongarch32-unknown-linux-f32");
+ EXPECT_EQ(Triple::loongarch32, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::F32, T.getEnvironment());
+
T = Triple("loongarch32-unknown-linux-muslsf");
EXPECT_EQ(Triple::loongarch32, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
EXPECT_EQ(Triple::Linux, T.getOS());
EXPECT_EQ(Triple::MuslSF, T.getEnvironment());
+ T = Triple("loongarch32-unknown-linux-sf");
+ EXPECT_EQ(Triple::loongarch32, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::SF, T.getEnvironment());
+
T = Triple("loongarch64-unknown-linux");
EXPECT_EQ(Triple::loongarch64, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
@@ -924,6 +942,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::GNUABI64, T.getEnvironment());
EXPECT_EQ(Triple::MipsSubArch_r6, T.getSubArch());
+ T = Triple("mips64-unknown-linux-abi64");
+ EXPECT_EQ(Triple::mips64, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::ABI64, T.getEnvironment());
+
T = Triple("mips64el-unknown-linux-gnuabin32");
EXPECT_EQ(Triple::mips64el, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
@@ -1085,6 +1109,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::MuslABIN32, T.getEnvironment());
EXPECT_EQ(Triple::MipsSubArch_r6, T.getSubArch());
+ T = Triple("mips64-unknown-linux-abin32");
+ EXPECT_EQ(Triple::mips64, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::ABIN32, T.getEnvironment());
+
T = Triple("mipsel-unknown-linux-musl");
EXPECT_EQ(Triple::mipsel, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
|
|
@llvm/pr-subscribers-clang Author: Alex Rønne Petersen (alexrp) ChangesIn Zig, building libc-less binaries is a first-class use case. As such, we would like to have environment names that indicate the ABI but without implying anything about libc. This is in line with the existing Full diff: https://github.com/llvm/llvm-project/pull/168042.diff 7 Files Affected:
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 9fd64d4aac514..bdb69434c94ba 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -808,6 +808,8 @@ static llvm::Triple computeTargetTriple(const Driver &D,
else if (Target.getEnvironment() == llvm::Triple::Musl ||
Target.getEnvironment() == llvm::Triple::MuslABI64)
Target.setEnvironment(llvm::Triple::MuslABIN32);
+ else
+ Target.setEnvironment(llvm::Triple::ABIN32);
} else if (ABIName == "64") {
Target = Target.get64BitArchVariant();
if (Target.getEnvironment() == llvm::Triple::GNU ||
@@ -817,6 +819,8 @@ static llvm::Triple computeTargetTriple(const Driver &D,
else if (Target.getEnvironment() == llvm::Triple::Musl ||
Target.getEnvironment() == llvm::Triple::MuslABIN32)
Target.setEnvironment(llvm::Triple::MuslABI64);
+ else
+ Target.setEnvironment(llvm::Triple::ABI64);
}
}
}
diff --git a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
index da084bdabaee3..67e7e3d37a5ad 100644
--- a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp
@@ -102,9 +102,11 @@ StringRef loongarch::getLoongArchABI(const Driver &D, const ArgList &Args,
// Honor the explicit ABI modifier suffix in triple's environment part if
// present, falling back to {ILP32,LP64}D otherwise.
switch (Triple.getEnvironment()) {
+ case llvm::Triple::SF:
case llvm::Triple::GNUSF:
case llvm::Triple::MuslSF:
return IsLA32 ? "ilp32s" : "lp64s";
+ case llvm::Triple::F32:
case llvm::Triple::GNUF32:
case llvm::Triple::MuslF32:
return IsLA32 ? "ilp32f" : "lp64f";
diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
index 020e7465548fe..2a207418ecc05 100644
--- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
@@ -107,10 +107,12 @@ std::string Linux::getMultiarchTriple(const Driver &D,
switch (TargetEnvironment) {
default:
return TargetTriple.str();
+ case llvm::Triple::SF:
case llvm::Triple::GNUSF:
case llvm::Triple::MuslSF:
FPFlavor = "sf";
break;
+ case llvm::Triple::F32:
case llvm::Triple::GNUF32:
case llvm::Triple::MuslF32:
FPFlavor = "f32";
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
index 11b76cd183108..8b6899b07af05 100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -253,6 +253,14 @@ class Triple {
enum EnvironmentType {
UnknownEnvironment,
+ ABIN32,
+ ABI64,
+ EABI,
+ EABIHF,
+ F32,
+ SF,
+ X32,
+
GNU,
GNUT64,
GNUABIN32,
@@ -266,10 +274,7 @@ class Triple {
GNUSF,
GNUX32,
GNUILP32,
- CODE16,
- EABI,
- EABIHF,
- Android,
+
Musl,
MuslABIN32,
MuslABI64,
@@ -279,12 +284,16 @@ class Triple {
MuslSF,
MuslX32,
MuslWALI,
+
+ Android,
+ CODE16,
LLVM,
MSVC,
Itanium,
Cygnus,
CoreCLR,
+
Simulator, // Simulator variants of other systems, e.g., Apple's iOS
MacABI, // Mac Catalyst variant of Apple's iOS deployment target.
@@ -1157,13 +1166,15 @@ class Triple {
// Tests whether the target is N32.
bool isABIN32() const {
EnvironmentType Env = getEnvironment();
- return Env == Triple::GNUABIN32 || Env == Triple::MuslABIN32;
+ return Env == Triple::GNUABIN32 || Env == Triple::MuslABIN32 ||
+ Env == Triple::ABIN32;
}
/// Tests whether the target is X32.
bool isX32() const {
EnvironmentType Env = getEnvironment();
- return Env == Triple::GNUX32 || Env == Triple::MuslX32;
+ return Env == Triple::GNUX32 || Env == Triple::MuslX32 ||
+ Env == Triple::X32;
}
/// Tests whether the target is eBPF.
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
index 7cefb3f8119b8..13d77327d8b6c 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.cpp
@@ -55,10 +55,12 @@ static ABI getTripleABI(const Triple &TT) {
case llvm::Triple::EnvironmentType::UnknownEnvironment:
TripleABI = ABI_Unknown;
break;
+ case llvm::Triple::EnvironmentType::SF:
case llvm::Triple::EnvironmentType::GNUSF:
case llvm::Triple::EnvironmentType::MuslSF:
TripleABI = Is64Bit ? ABI_LP64S : ABI_ILP32S;
break;
+ case llvm::Triple::EnvironmentType::F32:
case llvm::Triple::EnvironmentType::GNUF32:
case llvm::Triple::EnvironmentType::MuslF32:
TripleABI = Is64Bit ? ABI_LP64F : ABI_ILP32F;
diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp
index 11ba9ee32f66a..f1e621af44592 100644
--- a/llvm/lib/TargetParser/Triple.cpp
+++ b/llvm/lib/TargetParser/Triple.cpp
@@ -345,8 +345,18 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) {
case CODE16: return "code16";
case CoreCLR: return "coreclr";
case Cygnus: return "cygnus";
+ case ABIN32:
+ return "abin32";
+ case ABI64:
+ return "abi64";
case EABI: return "eabi";
case EABIHF: return "eabihf";
+ case F32:
+ return "f32";
+ case SF:
+ return "sf";
+ case X32:
+ return "x32";
case GNU: return "gnu";
case GNUT64: return "gnut64";
case GNUABI64: return "gnuabi64";
@@ -747,8 +757,13 @@ static Triple::OSType parseOS(StringRef OSName) {
static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
return StringSwitch<Triple::EnvironmentType>(EnvironmentName)
+ .StartsWith("abin32", Triple::ABIN32)
+ .StartsWith("abi64", Triple::ABI64)
.StartsWith("eabihf", Triple::EABIHF)
.StartsWith("eabi", Triple::EABI)
+ .StartsWith("f32", Triple::F32)
+ .StartsWith("sf", Triple::SF)
+ .StartsWith("x32", Triple::X32)
.StartsWith("gnuabin32", Triple::GNUABIN32)
.StartsWith("gnuabi64", Triple::GNUABI64)
.StartsWith("gnueabihft64", Triple::GNUEABIHFT64)
diff --git a/llvm/unittests/TargetParser/TripleTest.cpp b/llvm/unittests/TargetParser/TripleTest.cpp
index df8284d7be66a..d986926c2945c 100644
--- a/llvm/unittests/TargetParser/TripleTest.cpp
+++ b/llvm/unittests/TargetParser/TripleTest.cpp
@@ -121,6 +121,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::Linux, T.getOS());
EXPECT_EQ(Triple::MuslX32, T.getEnvironment());
+ T = Triple("x86_64-pc-linux-x32");
+ EXPECT_EQ(Triple::x86_64, T.getArch());
+ EXPECT_EQ(Triple::PC, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::X32, T.getEnvironment());
+
T = Triple("x86_64-pc-hurd-gnu");
EXPECT_EQ(Triple::x86_64, T.getArch());
EXPECT_EQ(Triple::PC, T.getVendor());
@@ -728,12 +734,24 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::Linux, T.getOS());
EXPECT_EQ(Triple::MuslF32, T.getEnvironment());
+ T = Triple("loongarch32-unknown-linux-f32");
+ EXPECT_EQ(Triple::loongarch32, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::F32, T.getEnvironment());
+
T = Triple("loongarch32-unknown-linux-muslsf");
EXPECT_EQ(Triple::loongarch32, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
EXPECT_EQ(Triple::Linux, T.getOS());
EXPECT_EQ(Triple::MuslSF, T.getEnvironment());
+ T = Triple("loongarch32-unknown-linux-sf");
+ EXPECT_EQ(Triple::loongarch32, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::SF, T.getEnvironment());
+
T = Triple("loongarch64-unknown-linux");
EXPECT_EQ(Triple::loongarch64, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
@@ -924,6 +942,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::GNUABI64, T.getEnvironment());
EXPECT_EQ(Triple::MipsSubArch_r6, T.getSubArch());
+ T = Triple("mips64-unknown-linux-abi64");
+ EXPECT_EQ(Triple::mips64, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::ABI64, T.getEnvironment());
+
T = Triple("mips64el-unknown-linux-gnuabin32");
EXPECT_EQ(Triple::mips64el, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
@@ -1085,6 +1109,12 @@ TEST(TripleTest, ParsedIDs) {
EXPECT_EQ(Triple::MuslABIN32, T.getEnvironment());
EXPECT_EQ(Triple::MipsSubArch_r6, T.getSubArch());
+ T = Triple("mips64-unknown-linux-abin32");
+ EXPECT_EQ(Triple::mips64, T.getArch());
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
+ EXPECT_EQ(Triple::Linux, T.getOS());
+ EXPECT_EQ(Triple::ABIN32, T.getEnvironment());
+
T = Triple("mipsel-unknown-linux-musl");
EXPECT_EQ(Triple::mipsel, T.getArch());
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
|
|
ping |
In Zig, building libc-less binaries is a first-class use case. As such, we would like to have environment names that indicate the ABI but without implying anything about libc. This is in line with the existing
EABIandEABIHFenvironments.