158 lines
5.9 KiB
Diff
158 lines
5.9 KiB
Diff
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
|
|
index 49db3088bbc..32ffed3cb2e 100644
|
|
--- a/cmake/modules/HandleLLVMOptions.cmake
|
|
+++ b/cmake/modules/HandleLLVMOptions.cmake
|
|
@@ -107,7 +107,7 @@ if(WIN32)
|
|
set(LLVM_ON_UNIX 0)
|
|
endif(CYGWIN)
|
|
else(WIN32)
|
|
- if(FUCHSIA OR UNIX)
|
|
+ if(FUCHSIA OR GENODE OR UNIX)
|
|
set(LLVM_ON_WIN32 0)
|
|
set(LLVM_ON_UNIX 1)
|
|
if(APPLE OR ${CMAKE_SYSTEM_NAME} MATCHES "AIX")
|
|
@@ -115,9 +115,9 @@ else(WIN32)
|
|
else()
|
|
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
|
|
endif()
|
|
- else(FUCHSIA OR UNIX)
|
|
+ else(FUCHSIA OR GENODE OR UNIX)
|
|
MESSAGE(SEND_ERROR "Unable to determine platform")
|
|
- endif(FUCHSIA OR UNIX)
|
|
+ endif(FUCHSIA OR GENODE OR UNIX)
|
|
endif(WIN32)
|
|
|
|
set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
|
|
diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
|
|
index e06a68e2731..7da3d5d29bc 100644
|
|
--- a/include/llvm/ADT/Triple.h
|
|
+++ b/include/llvm/ADT/Triple.h
|
|
@@ -159,6 +159,7 @@ public:
|
|
DragonFly,
|
|
FreeBSD,
|
|
Fuchsia,
|
|
+ Genode,
|
|
IOS,
|
|
KFreeBSD,
|
|
Linux,
|
|
@@ -498,6 +499,8 @@ public:
|
|
|
|
bool isOSDragonFly() const { return getOS() == Triple::DragonFly; }
|
|
|
|
+ bool isOSGenode() const { return getOS() == Triple::Genode; }
|
|
+
|
|
bool isOSSolaris() const {
|
|
return getOS() == Triple::Solaris;
|
|
}
|
|
diff --git a/include/llvm/BinaryFormat/ELF.h b/include/llvm/BinaryFormat/ELF.h
|
|
index ce35d127d43..d7a589057db 100644
|
|
--- a/include/llvm/BinaryFormat/ELF.h
|
|
+++ b/include/llvm/BinaryFormat/ELF.h
|
|
@@ -348,6 +348,7 @@ enum {
|
|
ELFOSABI_AROS = 15, // AROS
|
|
ELFOSABI_FENIXOS = 16, // FenixOS
|
|
ELFOSABI_CLOUDABI = 17, // Nuxi CloudABI
|
|
+ ELFOSABI_GENODE = 18, // Genode
|
|
ELFOSABI_FIRST_ARCH = 64, // First architecture-specific OS ABI
|
|
ELFOSABI_AMDGPU_HSA = 64, // AMD HSA runtime
|
|
ELFOSABI_AMDGPU_PAL = 65, // AMD PAL runtime
|
|
diff --git a/include/llvm/MC/MCELFObjectWriter.h b/include/llvm/MC/MCELFObjectWriter.h
|
|
index f226d6a45a5..91efe079d20 100644
|
|
--- a/include/llvm/MC/MCELFObjectWriter.h
|
|
+++ b/include/llvm/MC/MCELFObjectWriter.h
|
|
@@ -74,6 +74,8 @@ public:
|
|
switch (OSType) {
|
|
case Triple::CloudABI:
|
|
return ELF::ELFOSABI_CLOUDABI;
|
|
+ case Triple::Genode:
|
|
+ return ELF::ELFOSABI_GENODE;
|
|
case Triple::HermitCore:
|
|
return ELF::ELFOSABI_STANDALONE;
|
|
case Triple::PS4:
|
|
diff --git a/lib/ObjectYAML/ELFYAML.cpp b/lib/ObjectYAML/ELFYAML.cpp
|
|
index 215d6bdd091..0d3f5eaf032 100644
|
|
--- a/lib/ObjectYAML/ELFYAML.cpp
|
|
+++ b/lib/ObjectYAML/ELFYAML.cpp
|
|
@@ -260,6 +260,7 @@ void ScalarEnumerationTraits<ELFYAML::ELF_ELFOSABI>::enumeration(
|
|
ECase(ELFOSABI_AROS);
|
|
ECase(ELFOSABI_FENIXOS);
|
|
ECase(ELFOSABI_CLOUDABI);
|
|
+ ECase(ELFOSABI_GENODE);
|
|
ECase(ELFOSABI_AMDGPU_HSA);
|
|
ECase(ELFOSABI_AMDGPU_PAL);
|
|
ECase(ELFOSABI_AMDGPU_MESA3D);
|
|
diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp
|
|
index 26d9327f620..1866b07ac68 100644
|
|
--- a/lib/Support/Triple.cpp
|
|
+++ b/lib/Support/Triple.cpp
|
|
@@ -181,6 +181,7 @@ StringRef Triple::getOSTypeName(OSType Kind) {
|
|
case DragonFly: return "dragonfly";
|
|
case FreeBSD: return "freebsd";
|
|
case Fuchsia: return "fuchsia";
|
|
+ case Genode: return "genode";
|
|
case IOS: return "ios";
|
|
case KFreeBSD: return "kfreebsd";
|
|
case Linux: return "linux";
|
|
@@ -478,6 +479,7 @@ static Triple::OSType parseOS(StringRef OSName) {
|
|
.StartsWith("dragonfly", Triple::DragonFly)
|
|
.StartsWith("freebsd", Triple::FreeBSD)
|
|
.StartsWith("fuchsia", Triple::Fuchsia)
|
|
+ .StartsWith("genode", Triple::Genode)
|
|
.StartsWith("ios", Triple::IOS)
|
|
.StartsWith("kfreebsd", Triple::KFreeBSD)
|
|
.StartsWith("linux", Triple::Linux)
|
|
diff --git a/tools/llvm-readobj/ELFDumper.cpp b/tools/llvm-readobj/ELFDumper.cpp
|
|
index 93254717e92..3d96ff9332a 100644
|
|
--- a/tools/llvm-readobj/ELFDumper.cpp
|
|
+++ b/tools/llvm-readobj/ELFDumper.cpp
|
|
@@ -911,6 +911,7 @@ static const EnumEntry<unsigned> ElfOSABI[] = {
|
|
{"AROS", "AROS", ELF::ELFOSABI_AROS},
|
|
{"FenixOS", "FenixOS", ELF::ELFOSABI_FENIXOS},
|
|
{"CloudABI", "CloudABI", ELF::ELFOSABI_CLOUDABI},
|
|
+ {"Genode", "Genode", ELF::ELFOSABI_GENODE},
|
|
{"Standalone", "Standalone App", ELF::ELFOSABI_STANDALONE}
|
|
};
|
|
|
|
diff --git a/unittests/ADT/TripleTest.cpp b/unittests/ADT/TripleTest.cpp
|
|
index bc7f9321caa..5d6a56d7723 100644
|
|
--- a/unittests/ADT/TripleTest.cpp
|
|
+++ b/unittests/ADT/TripleTest.cpp
|
|
@@ -241,6 +241,12 @@ TEST(TripleTest, ParsedIDs) {
|
|
EXPECT_EQ(Triple::Fuchsia, T.getOS());
|
|
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
|
|
|
|
+ T = Triple("x86_64-unknown-genode");
|
|
+ EXPECT_EQ(Triple::x86_64, T.getArch());
|
|
+ EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
|
|
+ EXPECT_EQ(Triple::Genode, T.getOS());
|
|
+ EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
|
|
+
|
|
T = Triple("x86_64-unknown-hermit");
|
|
EXPECT_EQ(Triple::x86_64, T.getArch());
|
|
EXPECT_EQ(Triple::UnknownVendor, T.getVendor());
|
|
diff --git a/utils/benchmark/src/internal_macros.h b/utils/benchmark/src/internal_macros.h
|
|
index f2d54bfcbd9..e20f891d435 100644
|
|
--- a/utils/benchmark/src/internal_macros.h
|
|
+++ b/utils/benchmark/src/internal_macros.h
|
|
@@ -65,6 +65,8 @@
|
|
#define BENCHMARK_OS_FUCHSIA 1
|
|
#elif defined (__SVR4) && defined (__sun)
|
|
#define BENCHMARK_OS_SOLARIS 1
|
|
+#elif defined(__GENODE__)
|
|
+ #define BENCHMARK_OS_GENODE 1
|
|
#endif
|
|
|
|
#if !__has_feature(cxx_exceptions) && !defined(__cpp_exceptions) \
|
|
diff --git a/utils/gn/secondary/clang/lib/Driver/BUILD.gn b/utils/gn/secondary/clang/lib/Driver/BUILD.gn
|
|
index 1f07a6272d8..74eefe63b01 100644
|
|
--- a/utils/gn/secondary/clang/lib/Driver/BUILD.gn
|
|
+++ b/utils/gn/secondary/clang/lib/Driver/BUILD.gn
|
|
@@ -62,6 +62,7 @@ static_library("Driver") {
|
|
"ToolChains/DragonFly.cpp",
|
|
"ToolChains/FreeBSD.cpp",
|
|
"ToolChains/Fuchsia.cpp",
|
|
+ "ToolChains/Genode.cpp",
|
|
"ToolChains/Gnu.cpp",
|
|
"ToolChains/HIP.cpp",
|
|
"ToolChains/Haiku.cpp",
|