On Wed, 22 Mar 2023 at 02:30, Rebecca Cran <rebe...@bsdio.com> wrote: > > Update the CLANGDWARF toolchain definition with the settings from > CLANG38, and delete the CLANG35 and CLANG38 toolchains. > > The existing CLANGDWARF toolchain definition used ld.lld, but this > causes the following linker errors when building OvmfPkgX64.dsc: > > ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; > recompile with -fPIC > >>> defined in > >>> edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) > >>> referenced by > >>> /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii > >>> ExceptionHandlerAsm.obj:(.text+0x5) in archive > >>> /home/bcran/src/uefi/edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib > > ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; > recompile with -fPIC > >>> defined in > >>> edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) > >>> referenced by > >>> edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/X64/ExceptionHandlerAsm.iii > >>> ExceptionHandlerAsm.obj:(.text+0x14) in archive > >>> edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib > > To avoid this, use the default ld (which is normally GNU ld) instead. >
The reason I added CLANG3x support for ARM in the past is to ensure compatibility with the ARM proprietary, Clang based toolchain. At the time, we went with GNU ld, but I would actually prefer if we could make this work with LLD as well. I can work around this issue locally by doing --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -297,7 +297,7 @@ PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf -!if $(TOOL_CHAIN_TAG) == "XCODE5" +!if $(TOOL_CHAIN_TAG) == "XCODE5" || $(TOOL_CHAIN_TAG) == "CLANGDWARF" CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf !else Can you please check whether this works for you as well? > Signed-off-by: Rebecca Cran <rebe...@bsdio.com> > --- > BaseTools/Conf/tools_def.template | 453 ++++++++------------ > 1 file changed, 171 insertions(+), 282 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 471eb67c0c83..a790366063ea 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -273,32 +273,21 @@ DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc > # Required to build platforms or ACPI tables: > # Intel(r) ACPI Compiler from > # https://acpica.org/downloads > -# > -# CLANG35 -Linux,Windows- Requires: > -# Clang v3.5 or later, and GNU binutils > targeting aarch64-linux-gnu or arm-linux-gnueabi > -# Optional: > -# Required to build platforms or ACPI tables: > -# Intel(r) ACPI Compiler from > -# https://acpica.org/downloads > -# CLANG38 -Linux- Requires: > -# Clang v3.8, LLVMgold plugin and GNU binutils > 2.26 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-gnueabi > -# Clang v3.9 or later, LLVMgold plugin and GNU > binutils 2.28 targeting x86_64-linux-gnu, aarch64-linux-gnu or > arm-linux-gnueabi > +# CLANGDWARF -Linux- Requires: > +# Clang 9 or above, and GNU binutils targeting > x86_64-linux-gnu, aaarch64-linux-gnu or arm-linux-gnuaebi > # Optional: > # Required to build platforms or ACPI tables: > # Intel(r) ACPI Compiler from > # https://acpica.org/downloads > +# Required to compile nasm source: > +# nasm compiler from > +# NASM -- https://nasm.us > # CLANGPDB -Linux, Windows, Mac- Requires: > # Clang 9 or above from http://releases.llvm.org/ > # Optional: > # Required to compile nasm source: > # nasm compiler from > # NASM -- http://www.nasm.us/ > -# CLANGDWARF -Linux, Windows, Mac- Requires: > -# Clang 9 or above from http://releases.llvm.org/ > -# Optional: > -# Required to compile nasm source: > -# nasm compiler from > -# NASM -- http://www.nasm.us/ > # VS2008x86 -win64- Requires: > # Microsoft Visual Studio 2008 (x86) > # Microsoft Windows Server 2003 Driver > Development Kit (Microsoft WINDDK) version 3790.1830 > @@ -2565,187 +2554,187 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = > DEF(CLANG35_AARCH64_CC_FLAGS) $(PLATFORM_FLAG > # PE/COFF binaries using LLVM/Clang 3.8 with Link Time Optimization enabled > # > > #################################################################################### > -*_CLANG38_*_*_FAMILY = GCC > -*_CLANG38_*_MAKE_PATH = make > -*_CLANG38_*_*_DLL = ENV(CLANG38_DLL) > -*_CLANG38_*_ASL_PATH = DEF(UNIX_IASL_BIN) > +*_CLANGDWARF_*_*_FAMILY = GCC > +*_CLANGDWARF_*_MAKE_PATH = make > +*_CLANGDWARF_*_*_DLL = ENV(CLANGDWARF_DLL) > +*_CLANGDWARF_*_ASL_PATH = DEF(UNIX_IASL_BIN) > > -*_CLANG38_*_APP_FLAGS = > -*_CLANG38_*_ASL_FLAGS = DEF(IASL_FLAGS) > -*_CLANG38_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > -*_CLANG38_*_DEPS_FLAGS = DEF(GCC_DEPS_FLAGS) > -DEFINE CLANG38_IA32_PREFIX = ENV(CLANG38_BIN) > -DEFINE CLANG38_X64_PREFIX = ENV(CLANG38_BIN) > +*_CLANGDWARF_*_APP_FLAGS = > +*_CLANGDWARF_*_ASL_FLAGS = DEF(IASL_FLAGS) > +*_CLANGDWARF_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > +*_CLANGDWARF_*_DEPS_FLAGS = DEF(GCC_DEPS_FLAGS) > +DEFINE CLANGDWARF_IA32_PREFIX = ENV(CLANGDWARF_BIN) > +DEFINE CLANGDWARF_X64_PREFIX = ENV(CLANGDWARF_BIN) > > -DEFINE CLANG38_IA32_TARGET = -target i686-pc-linux-gnu > -DEFINE CLANG38_X64_TARGET = -target x86_64-pc-linux-gnu > +DEFINE CLANGDWARF_IA32_TARGET = -target i686-pc-linux-gnu > +DEFINE CLANGDWARF_X64_TARGET = -target x86_64-pc-linux-gnu > > -DEFINE CLANG38_WARNING_OVERRIDES = -Wno-parentheses-equality > -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare > -Wno-empty-body -Wno-unused-const-variable -Wno-varargs > -Wno-unknown-warning-option -Wno-unused-but-set-variable > -Wno-unused-const-variable -Wno-unaligned-access > -DEFINE CLANG38_ALL_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) > DEF(CLANG38_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields > -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas > -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables > -mno-sse -mno-mmx -msoft-float -mno-implicit-float > -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang > -funsigned-char -fno-ms-extensions -Wno-null-dereference > +DEFINE CLANGDWARF_WARNING_OVERRIDES = -Wno-parentheses-equality > -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare > -Wno-empty-body -Wno-unused-const-variable -Wno-varargs > -Wno-unknown-warning-option -Wno-unused-but-set-variable > -Wno-unused-const-variable -Wno-unaligned-access > +DEFINE CLANGDWARF_ALL_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) > DEF(CLANGDWARF_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields > -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas > -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables > -mno-sse -mno-mmx -msoft-float -mno-implicit-float > -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang > -funsigned-char -fno-ms-extensions -Wno-null-dereference > > ########################### > -# CLANG38 IA32 definitions > +# CLANGDWARF IA32 definitions > ########################### > -*_CLANG38_IA32_OBJCOPY_PATH = objcopy > -*_CLANG38_IA32_CC_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_SLINK_PATH = DEF(CLANG38_IA32_PREFIX)llvm-ar > -*_CLANG38_IA32_DLINK_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_ASLDLINK_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_ASM_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_PP_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_VFRPP_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_ASLCC_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_ASLPP_PATH = DEF(CLANG38_IA32_PREFIX)clang > -*_CLANG38_IA32_RC_PATH = objcopy > - > -*_CLANG38_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto > DEF(CLANG38_IA32_TARGET) > -*_CLANG38_IA32_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) > -Wl,-m,elf_i386 > -*_CLANG38_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 > DEF(CLANG38_IA32_TARGET) > -*_CLANG38_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) > -*_CLANG38_IA32_OBJCOPY_FLAGS = > -*_CLANG38_IA32_NASM_FLAGS = -f elf32 > -*_CLANG38_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANG38_IA32_TARGET) > -*_CLANG38_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > -*_CLANG38_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > - > -DEBUG_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > -DEBUG_CLANG38_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > -DEBUG_CLANG38_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O3 > - > -RELEASE_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double > -RELEASE_CLANG38_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > -RELEASE_CLANG38_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O3 > - > -NOOPT_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > -NOOPT_CLANG38_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 > -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > -NOOPT_CLANG38_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O0 > +*_CLANGDWARF_IA32_OBJCOPY_PATH = objcopy > +*_CLANGDWARF_IA32_CC_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_SLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-ar > +*_CLANGDWARF_IA32_DLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_ASLDLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_ASM_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_PP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_VFRPP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_ASLCC_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_ASLPP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > +*_CLANGDWARF_IA32_RC_PATH = objcopy > + > +*_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto > DEF(CLANGDWARF_IA32_TARGET) > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) > -Wl,-m,elf_i386 > +*_CLANGDWARF_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 > -march=i386 DEF(CLANGDWARF_IA32_TARGET) > +*_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) > +*_CLANGDWARF_IA32_OBJCOPY_FLAGS = > +*_CLANGDWARF_IA32_NASM_FLAGS = -f elf32 > +*_CLANGDWARF_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANGDWARF_IA32_TARGET) > +*_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANGDWARF_IA32_TARGET) > +*_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANGDWARF_IA32_TARGET) > + > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 > -Oz -flto -march=i586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double > +DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) > -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O3 > + > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 > -Oz -flto -march=i586 DEF(CLANGDWARF_IA32_TARGET) -malign-double > +RELEASE_CLANGDWARF_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) > -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O3 > + > +NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANGDWARF_ALL_CC_FLAGS) -m32 > -O0 -march=i586 DEF(CLANGDWARF_IA32_TARGET) -g -malign-double > +NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) > -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O0 > > ########################## > -# CLANG38 X64 definitions > +# CLANGDWARF X64 definitions > ########################## > -*_CLANG38_X64_OBJCOPY_PATH = objcopy > -*_CLANG38_X64_CC_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_SLINK_PATH = DEF(CLANG38_X64_PREFIX)llvm-ar > -*_CLANG38_X64_DLINK_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_ASLDLINK_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_ASM_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_PP_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_VFRPP_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_ASLCC_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_ASLPP_PATH = DEF(CLANG38_X64_PREFIX)clang > -*_CLANG38_X64_RC_PATH = objcopy > - > -*_CLANG38_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto > DEF(CLANG38_X64_TARGET) > -*_CLANG38_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) > -Wl,-m,elf_x86_64 > -*_CLANG38_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64 > DEF(CLANG38_X64_TARGET) > -*_CLANG38_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) > -*_CLANG38_X64_OBJCOPY_FLAGS = > -*_CLANG38_X64_NASM_FLAGS = -f elf64 > -*_CLANG38_X64_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANG38_X64_TARGET) > -*_CLANG38_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_X64_TARGET) > -*_CLANG38_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_X64_TARGET) > - > -DEBUG_CLANG38_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz > -flto DEF(CLANG38_X64_TARGET) -g > -DEBUG_CLANG38_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small > -DEBUG_CLANG38_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -O3 > - > -RELEASE_CLANG38_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz > -flto DEF(CLANG38_X64_TARGET) > -RELEASE_CLANG38_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small > -RELEASE_CLANG38_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -O3 > - > -NOOPT_CLANG38_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 > DEF(CLANG38_X64_TARGET) -g > -NOOPT_CLANG38_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 > -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small > -NOOPT_CLANG38_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -O0 > +*_CLANGDWARF_X64_OBJCOPY_PATH = objcopy > +*_CLANGDWARF_X64_CC_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_SLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)llvm-ar > +*_CLANGDWARF_X64_DLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_ASLDLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_ASM_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_PP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_VFRPP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_ASLCC_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_ASLPP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > +*_CLANGDWARF_X64_RC_PATH = objcopy > + > +*_CLANGDWARF_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto > DEF(CLANGDWARF_X64_TARGET) > +*_CLANGDWARF_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) > -Wl,-m,elf_x86_64 > +*_CLANGDWARF_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64 > DEF(CLANGDWARF_X64_TARGET) > +*_CLANGDWARF_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) > +*_CLANGDWARF_X64_OBJCOPY_FLAGS = > +*_CLANGDWARF_X64_NASM_FLAGS = -f elf64 > +*_CLANGDWARF_X64_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANGDWARF_X64_TARGET) > +*_CLANGDWARF_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANGDWARF_X64_TARGET) > +*_CLANGDWARF_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANGDWARF_X64_TARGET) > + > +DEBUG_CLANGDWARF_X64_CC_FLAGS = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz > -flto DEF(CLANGDWARF_X64_TARGET) -g > +DEBUG_CLANGDWARF_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small > +DEBUG_CLANGDWARF_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -O3 > + > +RELEASE_CLANGDWARF_X64_CC_FLAGS = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz > -flto DEF(CLANGDWARF_X64_TARGET) > +RELEASE_CLANGDWARF_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small > +RELEASE_CLANGDWARF_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -O3 > + > +NOOPT_CLANGDWARF_X64_CC_FLAGS = DEF(CLANGDWARF_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 > DEF(CLANGDWARF_X64_TARGET) -g > +NOOPT_CLANGDWARF_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small > +NOOPT_CLANGDWARF_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -O0 > > ################## > -# CLANG38 ARM definitions > +# CLANGDWARF ARM definitions > ################## > -DEFINE CLANG38_ARM_TARGET = -target arm-linux-gnueabi > -DEFINE CLANG38_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) > DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-movt > -DEFINE CLANG38_ARM_DLINK_FLAGS = DEF(CLANG38_ARM_TARGET) > DEF(GCC_ARM_DLINK_FLAGS) > - > -*_CLANG38_ARM_PP_FLAGS = DEF(GCC_PP_FLAGS) > -*_CLANG38_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > -*_CLANG38_ARM_APP_FLAGS = > -*_CLANG38_ARM_ASL_FLAGS = DEF(IASL_FLAGS) > -*_CLANG38_ARM_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > -*_CLANG38_ARM_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS) > - > -*_CLANG38_ARM_CC_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_ASM_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_PP_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_VFRPP_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_ASLCC_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_ASLPP_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_DLINK_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_ARM_ASLDLINK_PATH = ENV(CLANG38_BIN)clang > - > -*_CLANG38_ARM_SLINK_PATH = ENV(CLANG38_BIN)llvm-ar > -*_CLANG38_ARM_RC_PATH = ENV(CLANG38_ARM_PREFIX)objcopy > - > -*_CLANG38_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -fno-lto > -*_CLANG38_ARM_ASLDLINK_FLAGS = DEF(CLANG38_ARM_TARGET) > DEF(GCC_ARM_ASLDLINK_FLAGS) > -*_CLANG38_ARM_ASM_FLAGS = DEF(GCC_ASM_FLAGS) > DEF(CLANG38_ARM_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments > -*_CLANG38_ARM_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) > -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 > -*_CLANG38_ARM_PLATFORM_FLAGS = -march=armv7-a > -*_CLANG38_ARM_PP_FLAGS = DEF(GCC_PP_FLAGS) DEF(CLANG38_ARM_TARGET) > $(PLATFORM_FLAGS) > -*_CLANG38_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS) > -*_CLANG38_ARM_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_ARM_TARGET) $(PLATFORM_FLAGS) > -*_CLANG38_ARM_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_ARM_TARGET) > -*_CLANG38_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS) > - > - DEBUG_CLANG38_ARM_CC_FLAGS = DEF(CLANG38_ARM_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O1 > - DEBUG_CLANG38_ARM_DLINK_FLAGS = DEF(CLANG38_ARM_DLINK_FLAGS) -flto > -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm > -Wl,-plugin-opt=-pass-through=-llto-arm > - NOOPT_CLANG38_ARM_CC_FLAGS = DEF(CLANG38_ARM_CC_FLAGS) > $(PLATFORM_FLAGS) -O0 > - NOOPT_CLANG38_ARM_DLINK_FLAGS = DEF(CLANG38_ARM_DLINK_FLAGS) > -RELEASE_CLANG38_ARM_CC_FLAGS = DEF(CLANG38_ARM_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O3 > -RELEASE_CLANG38_ARM_DLINK_FLAGS = DEF(CLANG38_ARM_DLINK_FLAGS) -flto > -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm > -Wl,-plugin-opt=-pass-through=-llto-arm > +DEFINE CLANGDWARF_ARM_TARGET = -target arm-linux-gnueabi > +DEFINE CLANGDWARF_ARM_CC_FLAGS = DEF(GCC_ARM_CC_FLAGS) > DEF(CLANGDWARF_ARM_TARGET) DEF(CLANGDWARF_WARNING_OVERRIDES) -mno-movt > +DEFINE CLANGDWARF_ARM_DLINK_FLAGS = DEF(CLANGDWARF_ARM_TARGET) > DEF(GCC_ARM_DLINK_FLAGS) > + > +*_CLANGDWARF_ARM_PP_FLAGS = DEF(GCC_PP_FLAGS) > +*_CLANGDWARF_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > +*_CLANGDWARF_ARM_APP_FLAGS = > +*_CLANGDWARF_ARM_ASL_FLAGS = DEF(IASL_FLAGS) > +*_CLANGDWARF_ARM_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > +*_CLANGDWARF_ARM_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS) > + > +*_CLANGDWARF_ARM_CC_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_ASM_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_PP_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_VFRPP_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_ASLCC_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_ASLPP_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_DLINK_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_ARM_ASLDLINK_PATH = ENV(CLANGDWARF_BIN)clang > + > +*_CLANGDWARF_ARM_SLINK_PATH = ENV(CLANGDWARF_BIN)llvm-ar > +*_CLANGDWARF_ARM_RC_PATH = ENV(CLANGDWARF_ARM_PREFIX)objcopy > + > +*_CLANGDWARF_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -fno-lto > +*_CLANGDWARF_ARM_ASLDLINK_FLAGS = DEF(CLANGDWARF_ARM_TARGET) > DEF(GCC_ARM_ASLDLINK_FLAGS) > +*_CLANGDWARF_ARM_ASM_FLAGS = DEF(GCC_ASM_FLAGS) > DEF(CLANGDWARF_ARM_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments > +*_CLANGDWARF_ARM_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) > -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 > +*_CLANGDWARF_ARM_PLATFORM_FLAGS = -march=armv7-a > +*_CLANGDWARF_ARM_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANGDWARF_ARM_TARGET) $(PLATFORM_FLAGS) > +*_CLANGDWARF_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS) > +*_CLANGDWARF_ARM_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANGDWARF_ARM_TARGET) $(PLATFORM_FLAGS) > +*_CLANGDWARF_ARM_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANGDWARF_ARM_TARGET) > +*_CLANGDWARF_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS) > + > + DEBUG_CLANGDWARF_ARM_CC_FLAGS = DEF(CLANGDWARF_ARM_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O1 > + DEBUG_CLANGDWARF_ARM_DLINK_FLAGS = DEF(CLANGDWARF_ARM_DLINK_FLAGS) -flto > -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm > -Wl,-plugin-opt=-pass-through=-llto-arm > + NOOPT_CLANGDWARF_ARM_CC_FLAGS = DEF(CLANGDWARF_ARM_CC_FLAGS) > $(PLATFORM_FLAGS) -O0 > + NOOPT_CLANGDWARF_ARM_DLINK_FLAGS = DEF(CLANGDWARF_ARM_DLINK_FLAGS) > +RELEASE_CLANGDWARF_ARM_CC_FLAGS = DEF(CLANGDWARF_ARM_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O3 > +RELEASE_CLANGDWARF_ARM_DLINK_FLAGS = DEF(CLANGDWARF_ARM_DLINK_FLAGS) -flto > -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm > -Wl,-plugin-opt=-pass-through=-llto-arm > > ################## > -# CLANG38 AARCH64 definitions > +# CLANGDWARF AARCH64 definitions > ################## > -DEFINE CLANG38_AARCH64_TARGET = -target aarch64-linux-gnu > -DEFINE CLANG38_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) > DEF(CLANG38_AARCH64_TARGET) -mcmodel=small DEF(CLANG38_WARNING_OVERRIDES) > -DEFINE CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) > DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 > - > -*_CLANG38_AARCH64_PP_FLAGS = DEF(GCC_PP_FLAGS) > -*_CLANG38_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > -*_CLANG38_AARCH64_APP_FLAGS = > -*_CLANG38_AARCH64_ASL_FLAGS = DEF(IASL_FLAGS) > -*_CLANG38_AARCH64_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > -*_CLANG38_AARCH64_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS) > - > -*_CLANG38_AARCH64_CC_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_ASM_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_PP_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_VFRPP_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_ASLCC_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_ASLPP_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_DLINK_PATH = ENV(CLANG38_BIN)clang > -*_CLANG38_AARCH64_ASLDLINK_PATH = ENV(CLANG38_BIN)clang > - > -*_CLANG38_AARCH64_SLINK_PATH = ENV(CLANG38_BIN)llvm-ar > -*_CLANG38_AARCH64_RC_PATH = ENV(CLANG38_AARCH64_PREFIX)objcopy > - > -*_CLANG38_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -fno-lto > -*_CLANG38_AARCH64_ASLDLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) > DEF(GCC_AARCH64_ASLDLINK_FLAGS) > -*_CLANG38_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) > DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments > -*_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) > DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 > -*_CLANG38_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > -*_CLANG38_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) > -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 > -*_CLANG38_AARCH64_PLATFORM_FLAGS = > -*_CLANG38_AARCH64_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS) > -*_CLANG38_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS) > -*_CLANG38_AARCH64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_AARCH64_TARGET) $(PLATFORM_FLAGS) > -*_CLANG38_AARCH64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_AARCH64_TARGET) > -*_CLANG38_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS) > - > - DEBUG_CLANG38_AARCH64_CC_FLAGS = DEF(CLANG38_AARCH64_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O1 > - DEBUG_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto > -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 > -Wl,-plugin-opt=-pass-through=-llto-aarch64 > - NOOPT_CLANG38_AARCH64_CC_FLAGS = DEF(CLANG38_AARCH64_CC_FLAGS) > $(PLATFORM_FLAGS) -O0 > - NOOPT_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) > -RELEASE_CLANG38_AARCH64_CC_FLAGS = DEF(CLANG38_AARCH64_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O3 > -RELEASE_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto > -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 > -Wl,-plugin-opt=-pass-through=-llto-aarch64 > +DEFINE CLANGDWARF_AARCH64_TARGET = -target aarch64-linux-gnu > +DEFINE CLANGDWARF_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) > DEF(CLANGDWARF_AARCH64_TARGET) -mcmodel=small > DEF(CLANGDWARF_WARNING_OVERRIDES) > +DEFINE CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) > DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 > + > +*_CLANGDWARF_AARCH64_PP_FLAGS = DEF(GCC_PP_FLAGS) > +*_CLANGDWARF_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) > +*_CLANGDWARF_AARCH64_APP_FLAGS = > +*_CLANGDWARF_AARCH64_ASL_FLAGS = DEF(IASL_FLAGS) > +*_CLANGDWARF_AARCH64_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > +*_CLANGDWARF_AARCH64_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS) > + > +*_CLANGDWARF_AARCH64_CC_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_ASM_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_PP_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_VFRPP_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_ASLCC_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_ASLPP_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_DLINK_PATH = ENV(CLANGDWARF_BIN)clang > +*_CLANGDWARF_AARCH64_ASLDLINK_PATH = ENV(CLANGDWARF_BIN)clang > + > +*_CLANGDWARF_AARCH64_SLINK_PATH = ENV(CLANGDWARF_BIN)llvm-ar > +*_CLANGDWARF_AARCH64_RC_PATH = ENV(CLANGDWARF_AARCH64_PREFIX)objcopy > + > +*_CLANGDWARF_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -fno-lto > +*_CLANGDWARF_AARCH64_ASLDLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) > DEF(GCC_AARCH64_ASLDLINK_FLAGS) > +*_CLANGDWARF_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) > DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS) -Qunused-arguments > +*_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_TARGET) > DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 > +*_CLANGDWARF_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 > +*_CLANGDWARF_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) > -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 > +*_CLANGDWARF_AARCH64_PLATFORM_FLAGS = > +*_CLANGDWARF_AARCH64_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS) > +*_CLANGDWARF_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS) > +*_CLANGDWARF_AARCH64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANGDWARF_AARCH64_TARGET) $(PLATFORM_FLAGS) > +*_CLANGDWARF_AARCH64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANGDWARF_AARCH64_TARGET) > +*_CLANGDWARF_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS) > + > + DEBUG_CLANGDWARF_AARCH64_CC_FLAGS = DEF(CLANGDWARF_AARCH64_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O1 > + DEBUG_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) > -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 > -Wl,-plugin-opt=-pass-through=-llto-aarch64 > + NOOPT_CLANGDWARF_AARCH64_CC_FLAGS = DEF(CLANGDWARF_AARCH64_CC_FLAGS) > $(PLATFORM_FLAGS) -O0 > + NOOPT_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) > +RELEASE_CLANGDWARF_AARCH64_CC_FLAGS = DEF(CLANGDWARF_AARCH64_CC_FLAGS) > $(PLATFORM_FLAGS) -flto -O3 > +RELEASE_CLANGDWARF_AARCH64_DLINK_FLAGS = DEF(CLANGDWARF_AARCH64_DLINK_FLAGS) > -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 > -Wl,-plugin-opt=-pass-through=-llto-aarch64 > > > #################################################################################### > # > @@ -2845,106 +2834,6 @@ NOOPT_CLANGPDB_X64_DLINK_FLAGS = /NOLOGO > /NODEFAULTLIB /IGNORE:4001 /OPT:RE > NOOPT_CLANGPDB_X64_DLINK2_FLAGS = > NOOPT_CLANGPDB_X64_GENFW_FLAGS = --keepexceptiontable > > -#################################################################################### > -# > -# CLANGDWARF - This configuration is used to compile under Windows/Linux/Mac > to produce > -# ELF binaries using LLVM/Clang/LLD with Link Time Optimization enabled > -# > -#################################################################################### > -*_CLANGDWARF_*_*_FAMILY = GCC > -*_CLANGDWARF_*_*_BUILDRULEFAMILY = CLANGGCC > -*_CLANGDWARF_*_MAKE_PATH = ENV(CLANG_HOST_BIN)make > -*_CLANGDWARF_*_*_DLL = ENV(CLANGDWARF_DLL) > -*_CLANGDWARF_*_ASL_PATH = DEF(UNIX_IASL_BIN) > - > -*_CLANGDWARF_*_APP_FLAGS = > -*_CLANGDWARF_*_ASL_FLAGS = DEF(IASL_FLAGS) > -*_CLANGDWARF_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) > - > -DEFINE CLANGDWARF_IA32_PREFIX = ENV(CLANG_BIN) > -DEFINE CLANGDWARF_X64_PREFIX = ENV(CLANG_BIN) > - > -# LLVM/CLANG doesn't support -n link option. So, it can't share the same > IA32_X64_DLINK_COMMON flag. > -# LLVM/CLANG doesn't support common page size. So, it can't share the same > GccBase.lds script. > -DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-q,--gc-sections > -z max-page-size=0x40 > -DEFINE CLANGDWARF_DLINK2_FLAGS_COMMON = > -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/ClangBase.lds > -DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0 > DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) -Wl,--entry,ReferenceAcpiTable -u > ReferenceAcpiTable > -DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u > $(IMAGE_ENTRY_POINT) > -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive > -DEFINE CLANGDWARF_IA32_DLINK2_FLAGS = > -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) > -DEFINE CLANGDWARF_X64_DLINK2_FLAGS = > -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) > - > -########################### > -# CLANGDWARF IA32 definitions > -########################### > -*_CLANGDWARF_IA32_CC_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_SLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-ar > -*_CLANGDWARF_IA32_DLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_ASLDLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_ASM_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_PP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_VFRPP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_ASLCC_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_ASLPP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang > -*_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc > - > -*_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto > DEF(CLANG38_IA32_TARGET) > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > -*_CLANGDWARF_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 > -march=i386 DEF(CLANG38_IA32_TARGET) > -*_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) > -*_CLANGDWARF_IA32_OBJCOPY_FLAGS = > -*_CLANGDWARF_IA32_NASM_FLAGS = -f elf32 > -*_CLANGDWARF_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANG38_IA32_TARGET) > -*_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > -*_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > - > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > -DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) > -O3 -fuse-ld=lld > - > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double > -RELEASE_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) > -O3 -fuse-ld=lld > - > -NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > -NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 > -Wl,--oformat,elf32-i386 > -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) > -O0 -fuse-ld=lld > - > -########################## > -# CLANGDWARF X64 definitions > -########################## > -*_CLANGDWARF_X64_CC_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_SLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)llvm-ar > -*_CLANGDWARF_X64_DLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_ASLDLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_ASM_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_PP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_VFRPP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_ASLCC_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_ASLPP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang > -*_CLANGDWARF_X64_RC_PATH = DEF(CLANGDWARF_X64_PREFIX)llvm-rc > - > -*_CLANGDWARF_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto > DEF(CLANG38_X64_TARGET) > -*_CLANGDWARF_X64_ASLDLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64 -fuse-ld=lld > -*_CLANGDWARF_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64 > DEF(CLANG38_X64_TARGET) > -*_CLANGDWARF_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) > -*_CLANGDWARF_X64_OBJCOPY_FLAGS = > -*_CLANGDWARF_X64_NASM_FLAGS = -f elf64 > -*_CLANGDWARF_X64_PP_FLAGS = DEF(GCC_PP_FLAGS) > DEF(CLANG38_X64_TARGET) > -*_CLANGDWARF_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_X64_TARGET) > -*_CLANGDWARF_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_X64_TARGET) > - > -DEBUG_CLANGDWARF_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz > -flto DEF(CLANG38_X64_TARGET) -g > -DEBUG_CLANGDWARF_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) > -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie > -mcmodel=small -Wl,--apply-dynamic-relocs > -DEBUG_CLANGDWARF_X64_DLINK2_FLAGS = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 > -fuse-ld=lld > - > -RELEASE_CLANGDWARF_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz > -flto DEF(CLANG38_X64_TARGET) > -RELEASE_CLANGDWARF_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) > -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie > -mcmodel=small -Wl,--apply-dynamic-relocs > -RELEASE_CLANGDWARF_X64_DLINK2_FLAGS = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 > -fuse-ld=lld > - > -NOOPT_CLANGDWARF_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 > "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 > DEF(CLANG38_X64_TARGET) -g > -NOOPT_CLANGDWARF_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) > -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small > -Wl,--apply-dynamic-relocs > -NOOPT_CLANGDWARF_X64_DLINK2_FLAGS = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O0 > -fuse-ld=lld > - > # > # > # XCODE5 support > -- > 2.34.1 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101570): https://edk2.groups.io/g/devel/message/101570 Mute This Topic: https://groups.io/mt/97769546/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-