diff --git a/toolchain-overlay/clang.patch b/toolchain-overlay/clang.patch deleted file mode 100644 index cc3ea44..0000000 --- a/toolchain-overlay/clang.patch +++ /dev/null @@ -1,300 +0,0 @@ -diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index 3c139d72479..89d6df3f5b4 100644 ---- a/lib/Basic/Targets.cpp -+++ b/lib/Basic/Targets.cpp -@@ -147,6 +147,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple, - return new FreeBSDTargetInfo(Triple, Opts); - case llvm::Triple::Fuchsia: - return new FuchsiaTargetInfo(Triple, Opts); -+ case llvm::Triple::Genode: -+ return new GenodeTargetInfo(Triple, Opts); - case llvm::Triple::Linux: - return new LinuxTargetInfo(Triple, Opts); - case llvm::Triple::NetBSD: -@@ -171,6 +173,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple, - return new FreeBSDTargetInfo(Triple, Opts); - case llvm::Triple::Fuchsia: - return new FuchsiaTargetInfo(Triple, Opts); -+ case llvm::Triple::Genode: -+ return new GenodeTargetInfo(Triple, Opts); - case llvm::Triple::Linux: - return new LinuxTargetInfo(Triple, Opts); - case llvm::Triple::NetBSD: -@@ -528,6 +532,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple, - return new FreeBSDTargetInfo(Triple, Opts); - case llvm::Triple::Fuchsia: - return new FuchsiaTargetInfo(Triple, Opts); -+ case llvm::Triple::Genode: -+ return new GenodeTargetInfo(Triple, Opts); - case llvm::Triple::KFreeBSD: - return new KFreeBSDTargetInfo(Triple, Opts); - case llvm::Triple::Solaris: -diff --git a/lib/Basic/Targets/OSTargets.h b/lib/Basic/Targets/OSTargets.h -index 09867d82c38..f67151a13e8 100644 ---- a/lib/Basic/Targets/OSTargets.h -+++ b/lib/Basic/Targets/OSTargets.h -@@ -760,6 +760,26 @@ public: - } - }; - -+// Genode Target -+template -+class LLVM_LIBRARY_VISIBILITY GenodeTargetInfo : public OSTargetInfo { -+protected: -+ void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, -+ MacroBuilder &Builder) const override { -+ Builder.defineMacro("__GENODE__"); -+ Builder.defineMacro("__ELF__"); -+ // Required by the libc++ locale support. -+ if (Opts.CPlusPlus) -+ Builder.defineMacro("_GNU_SOURCE"); -+ } -+ -+public: -+ GenodeTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) -+ : OSTargetInfo(Triple, Opts) { -+ this->MCountName = "__mcount"; -+ } -+}; -+ - // WebAssembly target - template - class LLVM_LIBRARY_VISIBILITY WebAssemblyOSTargetInfo -diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt -index 4793a1f90b2..4691b898eb2 100644 ---- a/lib/Driver/CMakeLists.txt -+++ b/lib/Driver/CMakeLists.txt -@@ -44,6 +44,7 @@ add_clang_library(clangDriver - ToolChains/DragonFly.cpp - ToolChains/FreeBSD.cpp - ToolChains/Fuchsia.cpp -+ ToolChains/Genode.cpp - ToolChains/Gnu.cpp - ToolChains/Haiku.cpp - ToolChains/HIP.cpp -diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp -index a784e218f13..881b78abc4d 100644 ---- a/lib/Driver/Driver.cpp -+++ b/lib/Driver/Driver.cpp -@@ -22,6 +22,7 @@ - #include "ToolChains/DragonFly.h" - #include "ToolChains/FreeBSD.h" - #include "ToolChains/Fuchsia.h" -+#include "ToolChains/Genode.h" - #include "ToolChains/Gnu.h" - #include "ToolChains/HIP.h" - #include "ToolChains/Haiku.h" -@@ -4570,6 +4571,9 @@ const ToolChain &Driver::getToolChain(const ArgList &Args, - case llvm::Triple::Solaris: - TC = llvm::make_unique(*this, Target, Args); - break; -+ case llvm::Triple::Genode: -+ TC = llvm::make_unique(*this, Target, Args); -+ break; - case llvm::Triple::AMDHSA: - TC = llvm::make_unique(*this, Target, Args); - break; -diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp -index 1a46073aaa3..72b6f7389a3 100644 ---- a/lib/Driver/SanitizerArgs.cpp -+++ b/lib/Driver/SanitizerArgs.cpp -@@ -693,7 +693,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, - ImplicitCfiRuntime = TC.getTriple().isAndroid(); - - if (AllAddedKinds & Address) { -- NeedPIE |= TC.getTriple().isOSFuchsia(); -+ NeedPIE |= TC.getTriple().isOSFuchsia() | TC.getTriple().isOSGenode(); - if (Arg *A = - Args.getLastArg(options::OPT_fsanitize_address_field_padding)) { - StringRef S = A->getValue(); -diff --git a/lib/Driver/ToolChains/Genode.cpp b/lib/Driver/ToolChains/Genode.cpp -new file mode 100644 -index 00000000000..cbb1b9e30c4 ---- /dev/null -+++ b/lib/Driver/ToolChains/Genode.cpp -@@ -0,0 +1,84 @@ -+//===--- Genode.cpp --- Genode ToolChain Implementations --------*- C++ -*-===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+ -+ -+#include "Genode.h" -+#include "InputInfo.h" -+#include "CommonArgs.h" -+#include "clang/Driver/Compilation.h" -+#include "clang/Driver/Driver.h" -+#include "clang/Driver/Options.h" -+#include "llvm/ADT/SmallString.h" -+#include "llvm/Option/ArgList.h" -+#include "llvm/Support/Path.h" -+ -+using namespace clang::driver; -+using namespace clang::driver::tools; -+using namespace clang::driver::toolchains; -+using namespace clang; -+using namespace llvm::opt; -+ -+void genode::Linker::ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, -+ const InputInfoList &Inputs, -+ const llvm::opt::ArgList &Args, -+ const char *LinkingOutput) const { -+ const ToolChain &ToolChain = getToolChain(); -+ const Driver &D = ToolChain.getDriver(); -+ ArgStringList CmdArgs; -+ -+ if (Output.isFilename()) { -+ CmdArgs.push_back("-o"); -+ CmdArgs.push_back(Output.getFilename()); -+ } else { -+ assert(Output.isNothing() && "Invalid output."); -+ } -+ -+ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA); -+ -+ const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath()); -+ C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs, Inputs)); -+} -+ -+Genode::Genode(const Driver &D, const llvm::Triple &Triple, -+ const llvm::opt::ArgList &Args) -+ : Generic_ELF(D, Triple, Args) { -+ SmallString<128> P(getDriver().Dir); -+ llvm::sys::path::append(P, "..", getTriple().str(), "lib"); -+ getFilePaths().push_back(P.str()); -+} -+ -+void Genode::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const { -+ SmallString<128> P(getDriver().Dir); -+ llvm::sys::path::append(P, "..", getTriple().str(), "include/c++/v1"); -+ addSystemInclude(DriverArgs, CC1Args, P.str()); -+} -+ -+bool Genode::isPIEDefault() const { -+ switch (getTriple().getArch()) { -+ case llvm::Triple::aarch64: -+ case llvm::Triple::x86_64: -+ return true; -+ default: -+ return false; -+ } -+} -+ -+SanitizerMask Genode::getSupportedSanitizers() const { -+ return Generic_ELF::getSupportedSanitizers(); -+} -+ -+SanitizerMask Genode::getDefaultSanitizers() const { -+ return Generic_ELF::getDefaultSanitizers(); -+} -+ -+Tool *Genode::buildLinker() const { -+ return new tools::genode::Linker(*this); -+} -diff --git a/lib/Driver/ToolChains/Genode.h b/lib/Driver/ToolChains/Genode.h -new file mode 100644 -index 00000000000..971efb04ef9 ---- /dev/null -+++ b/lib/Driver/ToolChains/Genode.h -@@ -0,0 +1,69 @@ -+//===----- Genode.h --- Genode ToolChain Implementations --------*- C++ -*-===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+ -+ -+#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_GENODE_H -+#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_GENODE_H -+ -+#include "Gnu.h" -+#include "clang/Driver/Tool.h" -+#include "clang/Driver/ToolChain.h" -+ -+namespace clang { -+namespace driver { -+namespace tools { -+ -+//// genode -- Directly call GNU Binutils linker -+namespace genode { -+class LLVM_LIBRARY_VISIBILITY Linker : public GnuTool { -+public: -+ Linker(const ToolChain &TC) : GnuTool("genode::Linker", "linker", TC) {} -+ -+ bool hasIntegratedCPP() const override { return false; } -+ bool isLinkJob() const override { return true; } -+ -+ void ConstructJob(Compilation &C, const JobAction &JA, -+ const InputInfo &Output, const InputInfoList &Inputss, -+ const llvm::opt::ArgList &Args, -+ const char *LinkingOutput) const override; -+}; -+} // end namespace genode -+} // end namespace tools -+ -+namespace toolchains { -+ -+class LLVM_LIBRARY_VISIBILITY Genode : public Generic_ELF { -+public: -+ Genode(const Driver &D, const llvm::Triple &Triple, -+ const llvm::opt::ArgList &Args); -+ bool HasNativeLLVMSupport() const override { return true; } -+ -+ bool IsMathErrnoDefault() const override { return true; } -+ -+ CXXStdlibType -+ GetCXXStdlibType(const llvm::opt::ArgList &Args) const override { -+ return ToolChain::CST_Libcxx; -+ } -+ void addLibCxxIncludePaths( -+ const llvm::opt::ArgList &DriverArgs, -+ llvm::opt::ArgStringList &CC1Args) const override; -+ -+ bool isPIEDefault() const override; -+ SanitizerMask getSupportedSanitizers() const override; -+ SanitizerMask getDefaultSanitizers() const override; -+ -+protected: -+ Tool *buildLinker() const override; -+}; -+ -+} // end namespace toolchains -+} // end namespace driver -+} // end namespace clang -+ -+#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_GENODE_H -diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp -index 67842b5dca2..26a2c65fec2 100644 ---- a/lib/Frontend/InitHeaderSearch.cpp -+++ b/lib/Frontend/InitHeaderSearch.cpp -@@ -221,6 +221,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::PS4: - case llvm::Triple::ELFIAMCU: - case llvm::Triple::Fuchsia: -+ case llvm::Triple::Genode: - break; - case llvm::Triple::Win32: - if (triple.getEnvironment() != llvm::Triple::Cygnus) -@@ -329,6 +330,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, - case llvm::Triple::NaCl: - case llvm::Triple::ELFIAMCU: - case llvm::Triple::Fuchsia: -+ case llvm::Triple::Genode: - break; - case llvm::Triple::PS4: { - // gets prepended later in AddPath(). -diff --git a/test/Driver/genode.c b/test/Driver/genode.c -new file mode 100644 -index 00000000000..e69de29bb2d -diff --git a/test/Driver/genode.cpp b/test/Driver/genode.cpp -new file mode 100644 -index 00000000000..e69de29bb2d diff --git a/toolchain-overlay/compiler-rt.patch b/toolchain-overlay/compiler-rt.patch deleted file mode 100644 index 816d71b..0000000 --- a/toolchain-overlay/compiler-rt.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/builtins/assembly.h b/lib/builtins/assembly.h -index 3f5e59b2544..97d06d6ccd1 100644 ---- a/lib/builtins/assembly.h -+++ b/lib/builtins/assembly.h -@@ -45,7 +45,7 @@ - #define CONST_SECTION .section .rodata - - #if defined(__GNU__) || defined(__FreeBSD__) || defined(__Fuchsia__) || \ -- defined(__linux__) -+ defined(__linux__) || defined(__GENODE__) - #define NO_EXEC_STACK_DIRECTIVE .section .note.GNU-stack,"",%progbits - #else - #define NO_EXEC_STACK_DIRECTIVE diff --git a/toolchain-overlay/libc++.patch b/toolchain-overlay/libc++.patch deleted file mode 100644 index e37ad0b..0000000 --- a/toolchain-overlay/libc++.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff --git a/include/locale b/include/locale -index 2043892fa2d..6e5c285a7c9 100644 ---- a/include/locale -+++ b/include/locale -@@ -737,7 +737,7 @@ __num_get_signed_integral(const char* __a, const char* __a_end, - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; -- long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); -+ long long __ll = strtoll(__a, &__p2, __base); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; -@@ -777,7 +777,7 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, - typename remove_reference::type __save_errno = errno; - errno = 0; - char *__p2; -- unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); -+ unsigned long long __ll = strtoull(__a, &__p2, __base); - typename remove_reference::type __current_errno = errno; - if (__current_errno == 0) - errno = __save_errno; -@@ -806,19 +806,19 @@ _Tp __do_strtod(const char* __a, char** __p2); - template <> - inline _LIBCPP_INLINE_VISIBILITY - float __do_strtod(const char* __a, char** __p2) { -- return strtof_l(__a, __p2, _LIBCPP_GET_C_LOCALE); -+ return strtof(__a, __p2); - } - - template <> - inline _LIBCPP_INLINE_VISIBILITY - double __do_strtod(const char* __a, char** __p2) { -- return strtod_l(__a, __p2, _LIBCPP_GET_C_LOCALE); -+ return strtod(__a, __p2); - } - - template <> - inline _LIBCPP_INLINE_VISIBILITY - long double __do_strtod(const char* __a, char** __p2) { -- return strtold_l(__a, __p2, _LIBCPP_GET_C_LOCALE); -+ return strtold(__a, __p2); - } - - template -@@ -1197,13 +1197,13 @@ __num_put<_CharT>::__widen_and_group_float(char* __nb, char* __np, char* __ne, - *__oe++ = __ct.widen(*__nf++); - *__oe++ = __ct.widen(*__nf++); - for (__ns = __nf; __ns < __ne; ++__ns) -- if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE)) -+ if (!isxdigit(*__ns)) - break; - } - else - { - for (__ns = __nf; __ns < __ne; ++__ns) -- if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE)) -+ if (!isdigit(*__ns)) - break; - } - if (__grouping.empty()) -diff --git a/utils/google-benchmark/src/internal_macros.h b/utils/google-benchmark/src/internal_macros.h -index 5dbf4fd2752..4699c5ed913 100644 ---- a/utils/google-benchmark/src/internal_macros.h -+++ b/utils/google-benchmark/src/internal_macros.h -@@ -70,6 +70,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 defined(__ANDROID__) && defined(__GLIBCXX__) diff --git a/toolchain-overlay/llvm.patch b/toolchain-overlay/llvm.patch deleted file mode 100644 index 59d84fd..0000000 --- a/toolchain-overlay/llvm.patch +++ /dev/null @@ -1,157 +0,0 @@ -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::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 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",