https://github.com/Prabhuk updated https://github.com/llvm/llvm-project/pull/111719
>From 05eab970b59c61b22e8afa1ed9381906ae925c03 Mon Sep 17 00:00:00 2001 From: prabhukr <prabh...@google.com> Date: Wed, 9 Oct 2024 10:16:58 -0700 Subject: [PATCH 1/5] [clang] Introduce a new UEFI target predefine. --- clang/lib/Basic/Targets/OSTargets.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h index a83d6464e789d6..92c76b303def65 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -783,7 +783,10 @@ template <typename Target> class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo<Target> { protected: void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, - MacroBuilder &Builder) const override {} + MacroBuilder &Builder) const override { + Builder.defineMacro("__UEFI__"); + Builder.defineMacro("__PECOFF__"); + } public: UEFITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) >From 4ef8bcd3a9019299145b59d4f26cd4307171bed5 Mon Sep 17 00:00:00 2001 From: Prabhuk <prabhukrl...@gmail.com> Date: Wed, 13 Nov 2024 10:30:50 -0800 Subject: [PATCH 2/5] Update OSTargets.h Remove PE_COFF --- clang/lib/Basic/Targets/OSTargets.h | 1 - 1 file changed, 1 deletion(-) diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h index 92c76b303def65..5a23eef0117294 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -785,7 +785,6 @@ class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo<Target> { void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override { Builder.defineMacro("__UEFI__"); - Builder.defineMacro("__PECOFF__"); } public: >From bcccf1f86609a828130c1a9474d10b78c8f212c9 Mon Sep 17 00:00:00 2001 From: Prabhuk <prabhukrl...@gmail.com> Date: Wed, 13 Nov 2024 10:36:15 -0800 Subject: [PATCH 3/5] add __UEFI__ to windows predefines Updating the PE COFF generating windows code path to predefine the new __UEFI__ macro. --- clang/lib/Basic/Targets/OSTargets.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/clang/lib/Basic/Targets/OSTargets.cpp b/clang/lib/Basic/Targets/OSTargets.cpp index b56e2c7ca9c494..b9edeefa60148e 100644 --- a/clang/lib/Basic/Targets/OSTargets.cpp +++ b/clang/lib/Basic/Targets/OSTargets.cpp @@ -259,6 +259,7 @@ static void addVisualCDefines(const LangOptions &Opts, MacroBuilder &Builder) { void addWindowsDefines(const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder) { + Builder.defineMacro("__UEFI__"); Builder.defineMacro("_WIN32"); if (Triple.isArch64Bit()) Builder.defineMacro("_WIN64"); >From 2f6af5664bbd6f3cc01dfb7b46f67190dc4efba4 Mon Sep 17 00:00:00 2001 From: prabhukr <prabh...@google.com> Date: Fri, 20 Dec 2024 10:18:18 -0800 Subject: [PATCH 4/5] Removing the predefine from Windows targets. Keeping it only on UEFI. --- clang/lib/Basic/Targets/OSTargets.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/clang/lib/Basic/Targets/OSTargets.cpp b/clang/lib/Basic/Targets/OSTargets.cpp index b9edeefa60148e..b56e2c7ca9c494 100644 --- a/clang/lib/Basic/Targets/OSTargets.cpp +++ b/clang/lib/Basic/Targets/OSTargets.cpp @@ -259,7 +259,6 @@ static void addVisualCDefines(const LangOptions &Opts, MacroBuilder &Builder) { void addWindowsDefines(const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder) { - Builder.defineMacro("__UEFI__"); Builder.defineMacro("_WIN32"); if (Triple.isArch64Bit()) Builder.defineMacro("_WIN64"); >From 4c96e0d1bbae207301aacaee9044f3da7dc8bd3f Mon Sep 17 00:00:00 2001 From: prabhukr <prabh...@google.com> Date: Sat, 21 Dec 2024 13:16:38 -0800 Subject: [PATCH 5/5] Add a test to check if __UEFI__ is defined for UEFI targets. --- clang/test/Driver/uefi-defines.c | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 clang/test/Driver/uefi-defines.c diff --git a/clang/test/Driver/uefi-defines.c b/clang/test/Driver/uefi-defines.c new file mode 100644 index 00000000000000..45f27bfdb9fa98 --- /dev/null +++ b/clang/test/Driver/uefi-defines.c @@ -0,0 +1,6 @@ +// RUN: %clang -target x86_64-unknown-uefi %s -emit-llvm -S -c -o - | FileCheck %s + +// CHECK: __UEFI__defined +#ifdef __UEFI__ +void __UEFI__defined() {} +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits