[PATCH 3/9] BaseTools: Update CLANGDWARF toolchain and remove CLANG35 and CLANG38
Rebecca Cran
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 ld.lld: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPICdefined in edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) To avoid this, use the default ld (which is normally GNU ld) instead.defined in edk2/Build/OvmfX64/RELEASE_CLANGDWARF/X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExceptionHandlerLib.lib(ExceptionHandlerAsm.obj) Signed-off-by: Rebecca Cran <rebecca@...> --- 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 |
|
Guo, Gua
Try to verify the patch on my local. Could you help to check whether it happen on your side ? Please make sure windows build is not broken before code submitting.
Before the commit:
After the commit:
Thanks, Gua -----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca Cran Sent: Wednesday, March 22, 2023 9:31 AM To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>; Feng, Bob C <bob.c.feng@...>; Chen, Christine <yuwei.chen@...>; Andrew Fish <afish@...>; Leif Lindholm <quic_llindhol@...>; Ard Biesheuvel <ardb+tianocore@...>; Justen, Jordan L <jordan.l.justen@...>; Gerd Hoffmann <kraxel@...> Cc: Rebecca Cran <rebecca@...> Subject: [edk2-devel] [PATCH 3/9] BaseTools: Update CLANGDWARF toolchain and remove CLANG35 and CLANG38
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/CpuExce >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti >>> onHandlerLib.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/UefiC >>> puPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OU >>> TPUT/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/CpuExce >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti >>> onHandlerLib.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/CpuExce >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti >>> onHandlerLib.lib
To avoid this, use the default ld (which is normally GNU ld) instead.
Signed-off-by: Rebecca Cran <rebecca@...> --- 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
|
|
Ard Biesheuvel
On Wed, 22 Mar 2023 at 02:30, Rebecca Cran <rebecca@...> wrote:
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 <rebecca@...> |
|
Rebecca Cran
On 3/22/23 5:49 AM, Ard Biesheuvel wrote:
The reason I added CLANG3x support for ARM in the past is to ensureThanks, that works here too! Do we still need to keep CLANG35 and CLANG38 toolchains for compatibility with the ARM toolchain? Or have things moved on so they _can_ be removed? -- Rebecca Cran |
|
Ard Biesheuvel
On Wed, 22 Mar 2023 at 13:28, Rebecca Cran <rebecca@...> wrote:
No, please go ahead and merge all of those - the 35/38 naming is so out of date it is likely to confuse people, so we should rename those in any case. I haven't tried building EDK2 for ARM with LLD myself - let me know if you run into any issues there. |
|
Gerd Hoffmann
On Wed, Mar 22, 2023 at 01:32:01PM +0100, Ard Biesheuvel wrote:
On Wed, 22 Mar 2023 at 13:28, Rebecca Cran <rebecca@...> wrote:Same goes for all the GCC4x toolchains I guess ...No, please go ahead and merge all of those - the 35/38 naming is so take care, Gerd |
|
Ard Biesheuvel
On Wed, 22 Mar 2023 at 14:03, Gerd Hoffmann <kraxel@...> wrote:
Indeed - we should just drop those, and rename GCC5 to GCC |
|
Rebecca Cran
I'm not seeing this failure. Could you tell me what the following commands print, please:
toggle quoted message
Show quoted text
where clang where lld Mine are: C:\Users\bcran\Documents\src\uefi\edk2>where clang C:\Program Files\LLVM\bin\clang.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\bin\clang.exe C:\Users\bcran\Documents\src\uefi\edk2>where lld C:\Program Files\LLVM\bin\lld.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\bin\lld.exe Also, could you provide more of the output? On 3/21/23 10:57 PM, Guo, Gua wrote:
|
|
Guo, Gua
Mine are:
-----Original Message-----
From: Rebecca Cran <rebecca@...> Sent: Wednesday, March 22, 2023 9:11 PM To: Guo, Gua <gua.guo@...>; devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>; Feng, Bob C <bob.c.feng@...>; Chen, Christine <yuwei.chen@...>; Andrew Fish <afish@...>; Leif Lindholm <quic_llindhol@...>; Ard Biesheuvel <ardb+tianocore@...>; Justen, Jordan L <jordan.l.justen@...>; Gerd Hoffmann <kraxel@...> Subject: Re: [edk2-devel] [PATCH 3/9] BaseTools: Update CLANGDWARF toolchain and remove CLANG35 and CLANG38
I'm not seeing this failure. Could you tell me what the following commands print, please:
where clang
where lld
Mine are:
C:\Users\bcran\Documents\src\uefi\edk2>where clang C:\Program Files\LLVM\bin\clang.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\bin\clang.exe
C:\Users\bcran\Documents\src\uefi\edk2>where lld C:\Program Files\LLVM\bin\lld.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\bin\lld.exe
Also, could you provide more of the output?
On 3/21/23 10:57 PM, Guo, Gua wrote: > > Try to verify the patch on my local. Could you help to check whether > it happen on your side ? > > Please make sure windows build is not broken before code submitting. > > Before the commit: > > * Windows 10: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > VS2019 PASS > o Install > https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe > o Install VS2019 > o edksetup.bat Rebuild > o py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 > > * Ubuntu 20.04: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > GCC5 PASS > o sudo apt install clang-10 llvm-10 > o source edksetup.sh > o make -C BaseTools > o python3 UefiPayloadPkg/UniversalPayloadBuild.py -t GCC5 > > After the commit: > > * Windows 10: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > VS2019 FAIL > o Install > https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe > o Install VS2019 > o edksetup.bat Rebuild > o py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 > o > > * Ubuntu 20.04: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > GCC5 PASS > o sudo apt install clang-10 llvm-10 > o source edksetup.sh > o make -C BaseTools > o python3 UefiPayloadPkg/UniversalPayloadBuild.py -t GCC5 > > Thanks, > > Gua > > -----Original Message----- > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca > Cran > > Sent: Wednesday, March 22, 2023 9:31 AM > > To: devel@edk2.groups.io; Kinney, Michael D > <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; > Liu, Zhiguang <zhiguang.liu@...>; Feng, Bob C > <bob.c.feng@...>; Chen, Christine <yuwei.chen@...>; Andrew > Fish <afish@...>; Leif Lindholm <quic_llindhol@...>; Ard > Biesheuvel <ardb+tianocore@...>; Justen, Jordan L > <jordan.l.justen@...>; Gerd Hoffmann <kraxel@...> > > Cc: Rebecca Cran <rebecca@...> > > Subject: [edk2-devel] [PATCH 3/9] BaseTools: Update CLANGDWARF > toolchain and remove CLANG35 and CLANG38 > > 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/CpuExce > > >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti > > >>> onHandlerLib.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/UefiC > > >>> puPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OU > > >>> TPUT/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/CpuExce > > >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti > > >>> onHandlerLib.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/CpuExce > > >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti > > >>> onHandlerLib.lib > > To avoid this, use the default ld (which is normally GNU ld) instead. > > Signed-off-by: Rebecca Cran <rebecca@...> > > --- > > 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 > > # Optional: > > # Required to compile nasm source: > > # nasm compiler from > > # NASM -- http://www.nasm.us/ > > -# CLANGDWARF -Linux, Windows, Mac- Requires: > > -# Clang 9 or above from > > -# 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 > > > |
|
Rebecca Cran
Also "where clang" please.
toggle quoted message
Show quoted text
And could you provide more of the build output please? Perhaps on https://pastebin.com/ ? Thanks. Rebecca Cran On 3/22/23 4:07 PM, Guo, Gua wrote:
|
|
Guo, Gua
For "where clang"
For full build log based on
About Fail full log and Pass full log > git clone https://github.com/bcran/edk2.git --recursive > git checkout clangdwarf > edksetup Rebuild > py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 > BuildLogDWARF_FAIL.log <- Attachment > git -dfx > rm -rf Build > edksetup Rebuild > py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 > BuildLogDWARF_PASS.log <- Attachment
Thanks, Gua -----Original Message-----
From: Rebecca Cran <rebecca@...> Sent: Thursday, March 23, 2023 6:24 AM To: Guo, Gua <gua.guo@...>; devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>; Feng, Bob C <bob.c.feng@...>; Chen, Christine <yuwei.chen@...>; Andrew Fish <afish@...>; Leif Lindholm <quic_llindhol@...>; Ard Biesheuvel <ardb+tianocore@...>; Justen, Jordan L <jordan.l.justen@...>; Gerd Hoffmann <kraxel@...> Subject: Re: [edk2-devel] [PATCH 3/9] BaseTools: Update CLANGDWARF toolchain and remove CLANG35 and CLANG38
Also "where clang" please.
And could you provide more of the build output please? Perhaps on https://pastebin.com/ ?
Thanks.
Rebecca Cran
On 3/22/23 4:07 PM, Guo, Gua wrote: > > Mine are: > > -----Original Message----- > From: Rebecca Cran <rebecca@...> > Sent: Wednesday, March 22, 2023 9:11 PM > To: Guo, Gua <gua.guo@...>; devel@edk2.groups.io; Kinney, > Michael D <michael.d.kinney@...>; Gao, Liming > <gaoliming@...>; Liu, Zhiguang <zhiguang.liu@...>; > Feng, Bob C <bob.c.feng@...>; Chen, Christine > <yuwei.chen@...>; Andrew Fish <afish@...>; Leif Lindholm > <quic_llindhol@...>; Ard Biesheuvel > <ardb+tianocore@...>; Justen, Jordan L > <jordan.l.justen@...>; Gerd Hoffmann <kraxel@...> > Subject: Re: [edk2-devel] [PATCH 3/9] BaseTools: Update CLANGDWARF > toolchain and remove CLANG35 and CLANG38 > > I'm not seeing this failure. Could you tell me what the following > commands print, please: > > where clang > > where lld > > Mine are: > > C:\Users\bcran\Documents\src\uefi\edk2>where clang > > C:\Program Files\LLVM\bin\clang.exe > > C:\Program Files (x86)\Microsoft Visual > > Studio\2019\Professional\VC\Tools\Llvm\bin\clang.exe > > C:\Users\bcran\Documents\src\uefi\edk2>where lld > > C:\Program Files\LLVM\bin\lld.exe > > C:\Program Files (x86)\Microsoft Visual > > Studio\2019\Professional\VC\Tools\Llvm\bin\lld.exe > > Also, could you provide more of the output? > > On 3/21/23 10:57 PM, Guo, Gua wrote: > > > > > > Try to verify the patch on my local. Could you help to check whether > > > it happen on your side ? > > > > > > Please make sure windows build is not broken before code submitting. > > > > > > Before the commit: > > > > > > * Windows 10: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > > > VS2019 PASS > > > o Install > > > > https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe > <https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe> > > > o Install VS2019 > > > o edksetup.bat Rebuild > > > o py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 > > > > > > * Ubuntu 20.04: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > > > GCC5 PASS > > > o sudo apt install clang-10 llvm-10 > > > o source edksetup.sh > > > o make -C BaseTools > > > o python3 UefiPayloadPkg/UniversalPayloadBuild.py -t GCC5 > > > > > > After the commit: > > > > > > * Windows 10: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > > > VS2019 FAIL > > > o Install > > > > https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe > <https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe> > > > o Install VS2019 > > > o edksetup.bat Rebuild > > > o py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t VS2019 > > > o > > > > > > * Ubuntu 20.04: py -3 UefiPayloadPkg\UniversalPayloadBuild.py -t > > > GCC5 PASS > > > o sudo apt install clang-10 llvm-10 > > > o source edksetup.sh > > > o make -C BaseTools > > > o python3 UefiPayloadPkg/UniversalPayloadBuild.py -t GCC5 > > > > > > Thanks, > > > > > > Gua > > > > > > -----Original Message----- > > > > > > From: devel@edk2.groups.io <mailto:devel@edk2.groups.io> > <devel@edk2.groups.io <mailto:devel@edk2.groups.io>> On Behalf Of Rebecca > > > Cran > > > > > > Sent: Wednesday, March 22, 2023 9:31 AM > > > > > > To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Kinney, > Michael D > > > <michael.d.kinney@... <mailto:michael.d.kinney@...>>; > Gao, Liming <gaoliming@... <mailto:gaoliming@...>>; > > > Liu, Zhiguang <zhiguang.liu@... > <mailto:zhiguang.liu@...>>; Feng, Bob C > > > <bob.c.feng@... <mailto:bob.c.feng@...>>; Chen, > Christine <yuwei.chen@... <mailto:yuwei.chen@...>>; Andrew > > > Fish <afish@... <mailto:afish@...>>; Leif Lindholm > <quic_llindhol@... <mailto:quic_llindhol@...>>; Ard > > > Biesheuvel <ardb+tianocore@... > <mailto:ardb+tianocore@...>>; Justen, Jordan L > > > <jordan.l.justen@... <mailto:jordan.l.justen@...>>; Gerd > Hoffmann <kraxel@... <mailto:kraxel@...>> > > > > > > Cc: Rebecca Cran <rebecca@... <mailto:rebecca@...>> > > > > > > Subject: [edk2-devel] [PATCH 3/9] BaseTools: Update CLANGDWARF > > > toolchain and remove CLANG35 and CLANG38 > > > > > > 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/CpuExce > > > > > > >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti > > > > > > >>> onHandlerLib.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/UefiC > > > > > > >>> puPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib/OU > > > > > > >>> TPUT/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/CpuExce > > > > > > >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti > > > > > > >>> onHandlerLib.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/CpuExce > > > > > > >>> ptionHandlerLib/SecPeiCpuExceptionHandlerLib/OUTPUT/SecPeiCpuExcepti > > > > > > >>> onHandlerLib.lib > > > > > > To avoid this, use the default ld (which is normally GNU ld) instead. > > > > > > Signed-off-by: Rebecca Cran <rebecca@... > <mailto:rebecca@...>> > > > > > > --- > > > > > > 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 <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 <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 <https://acpica.org/downloads> > > > > > > +# Required to compile nasm source: > > > > > > +# nasm compiler from > > > > > > +# NASM -- https://nasm.us <https://nasm.us> > > > > > > # CLANGPDB -Linux, Windows, Mac- Requires: > > > > > > # Clang 9 or above from > > > http://releases.llvm.org/ <http://releases.llvm.org/> > > > > > > # Optional: > > > > > > # Required to compile nasm source: > > > > > > # nasm compiler from > > > > > > # NASM -- http://www.nasm.us/ <http://www.nasm.us/> > > > > > > -# CLANGDWARF -Linux, Windows, Mac- Requires: > > > > > > -# Clang 9 or above from > > > http://releases.llvm.org/ <http://releases.llvm.org/> > > > > > > -# Optional: > > > > > > -# Required to compile nasm source: > > > > > > -# nasm compiler from > > > > > > -# NASM -- http://www.nasm.us/ <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 > > > > > > > > > > |
|
Rebecca Cran
On 3/22/23 5:49 AM, Ard Biesheuvel wrote:
Just to confirm, I'll keep lld for X64 and IA32, but I won't add -fuse-ld=lld for ARM or AARCH64 since none of the toolchain definitions currently do so. The problem with trying to use lld for aarch64 is the following error: GenFw: ERROR 3000: Invalid WriteSections64(): /home/bcran/uefi/edk2/Build/ArmVirtQemu-AARCH64/RELEASE_CLANGDWARF/AARCH64/ArmVirtPkg/MemoryInitPei/MemoryInitPeim/DEBUG/MemoryInit.dll due to its size (> 1 MB), this module requires 4 KB section alignment. -- Rebecca Cran |
|
Ard Biesheuvel
On Thu, 23 Mar 2023 at 02:30, Rebecca Cran <rebecca@...> wrote:
That seems to be a false positive error in GenFw. It looks like LLD turns ADRP ADD into NOP ADR if the target is within -/+ 1 MiB but it doesn't update the relocations, so GenFw goes off into the weeds. I.e.. 304: d503201f nop 304: R_AARCH64_ADR_PREL_PG_HI21 .data 308: 100015c1 adr x1, 5c0 <gArmMpCoreInfoPpiGuid> 308: R_AARCH64_ADD_ABS_LO12_NC .data This is just another indication that using --emit-relocs is a bad idea, and we should really be building PIE executables and converting those based on the dynamic relocation instead. Adding -Wl,--no-relax to the DLINK flags should help with this, although I notice that there are other LLD related issues, in the ID map code I added to ArmVirtQemu a while ago, so ArmVirtQemu.dsc still does not build. |
|
Ard Biesheuvel
On Thu, 23 Mar 2023 at 10:04, Ard Biesheuvel <ardb@...> wrote:
So I played around with this a bit more, also on ARM, and it seems to me that simply disabling PIE linking is the best approach here - the PE/COFF conversion essentially turns it into a relocatable binary already, and so PIE linking does not actually add anything useful here, and on ARM, the resulting ELF binary triggers an assert in GenFw So adding -fuse-ld=lld -Wl,--no-relax,--no-pie to both CLANG38_AARCH64_DLINK_FLAGS and CLANG38_ARM_DLINK_FLAGS works for me locally, i.e., builds complete without errors and can boot successfully. We will also be able to drop the GccLto plugin pass through libraries, which is rather nice as well. |
|
Rebecca Cran
I'm not able to reproduce the failure you're seeing.
toggle quoted message
Show quoted text
The error message, "clang: error: unable to execute command: program not executable" looks like it would be a temporary failure. Could you try again? Also, you said to install LLVM 11.0.0, but you apparently have 12.0.1 installed? -- Rebecca Cran On 3/22/23 4:46 PM, Guo, Gua wrote:
|
|