llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Tristan Ross (RossComputerGuy) <details> <summary>Changes</summary> Adds the rest of the targets which support UEFI according to the [spec](https://uefi.org/sites/default/files/resources/UEFI_Spec_2_10_Aug29.pdf). --- Full diff: https://github.com/llvm/llvm-project/pull/136247.diff 3 Files Affected: - (modified) clang/include/clang/Basic/TargetOSMacros.def (+3) - (modified) clang/lib/Basic/Targets.cpp (+14) - (modified) clang/test/Preprocessor/init.c (+5) ``````````diff diff --git a/clang/include/clang/Basic/TargetOSMacros.def b/clang/include/clang/Basic/TargetOSMacros.def index 58dce330f9c8f..f4f3276ad1c25 100644 --- a/clang/include/clang/Basic/TargetOSMacros.def +++ b/clang/include/clang/Basic/TargetOSMacros.def @@ -53,4 +53,7 @@ TARGET_OS(TARGET_OS_NANO, Triple.isWatchOS()) TARGET_OS(TARGET_IPHONE_SIMULATOR, Triple.isSimulatorEnvironment()) TARGET_OS(TARGET_OS_UIKITFORMAC, Triple.isMacCatalystEnvironment()) +// UEFI target. +TARGET_OS(TARGET_OS_UEFI, Triple.isUEFI()) + #undef TARGET_OS diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index c6d228fe98100..0502d99a20e4f 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -164,6 +164,11 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple, return std::make_unique<OHOSTargetInfo<AArch64leTargetInfo>>(Triple, Opts); } + + case llvm::Triple::UEFI: + return std::make_unique<UEFITargetInfo<AArch64leTargetInfo>>(Triple, + Opts); + case llvm::Triple::NetBSD: return std::make_unique<NetBSDTargetInfo<AArch64leTargetInfo>>(Triple, Opts); @@ -227,6 +232,8 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple, return std::make_unique<HaikuTargetInfo<ARMleTargetInfo>>(Triple, Opts); case llvm::Triple::NaCl: return std::make_unique<NaClTargetInfo<ARMleTargetInfo>>(Triple, Opts); + case llvm::Triple::UEFI: + return std::make_unique<UEFITargetInfo<ARMleTargetInfo>>(Triple, Opts); case llvm::Triple::Win32: switch (Triple.getEnvironment()) { case llvm::Triple::Cygnus: @@ -457,6 +464,8 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple, case llvm::Triple::Haiku: return std::make_unique<HaikuTargetInfo<RISCV64TargetInfo>>(Triple, Opts); + case llvm::Triple::UEFI: + return std::make_unique<UEFITargetInfo<RISCV64TargetInfo>>(Triple, Opts); case llvm::Triple::Linux: switch (Triple.getEnvironment()) { default: @@ -569,6 +578,8 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple, case llvm::Triple::Solaris: return std::make_unique<SolarisTargetInfo<X86_32TargetInfo>>(Triple, Opts); + case llvm::Triple::UEFI: + return std::make_unique<UEFITargetInfo<X86_32TargetInfo>>(Triple, Opts); case llvm::Triple::Win32: { switch (Triple.getEnvironment()) { case llvm::Triple::Cygnus: @@ -760,6 +771,9 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple, case llvm::Triple::FreeBSD: return std::make_unique<FreeBSDTargetInfo<LoongArch64TargetInfo>>(Triple, Opts); + case llvm::Triple::UEFI: + return std::make_unique<UEFITargetInfo<LoongArch64TargetInfo>>(Triple, + Opts); default: return std::make_unique<LoongArch64TargetInfo>(Triple, Opts); } diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 1ac325d444662..55a7340deba24 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -2835,6 +2835,11 @@ // RISCV64-LINUX: #define unix 1 // RUN: %clang_cc1 -dM -triple=x86_64-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s +// RUN: %clang_cc1 -dM -triple=armv7l-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s +// RUN: %clang_cc1 -dM -triple=aarch64-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s +// RUN: %clang_cc1 -dM -triple=loongarch64-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s +// RUN: %clang_cc1 -dM -triple=riscv64-unknown-uefi -E < /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s +// RUN: %clang_cc1 -dM -triple=x86_64-unknown-uefi -E /dev/null | FileCheck -match-full-lines -check-prefix UEFI %s // UEFI: #define __UEFI__ 1 `````````` </details> https://github.com/llvm/llvm-project/pull/136247 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits