GCC for 32-bit ARM chokes on .aslc files when running with LTO
enabled. Since LTO has no benefit whatsoever here, just disable
it globally for GCC5 and up when building .aslc files.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
DEFINE GCC48_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
DEFINE GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_ASLDLINK_FLAGS) -Wl,--oformat=elf32-littlearm\r
DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
DEFINE GCC48_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
DEFINE GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_ASLDLINK_FLAGS) -Wl,--oformat=elf32-littlearm\r
DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
+DEFINE GCC48_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
\r
DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS)\r
DEFINE GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS)\r
\r
DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS)\r
DEFINE GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS)\r
DEFINE GCC49_AARCH64_DLINK2_FLAGS = DEF(GCC48_AARCH64_DLINK2_FLAGS)\r
DEFINE GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS)\r
DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)\r
DEFINE GCC49_AARCH64_DLINK2_FLAGS = DEF(GCC48_AARCH64_DLINK2_FLAGS)\r
DEFINE GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS)\r
DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)\r
+DEFINE GCC49_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS)\r
\r
DEFINE GCC5_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -fno-pic -fno-pie\r
DEFINE GCC5_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS)\r
\r
DEFINE GCC5_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -fno-pic -fno-pie\r
DEFINE GCC5_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS)\r
DEFINE GCC5_AARCH64_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error\r
DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS)\r
DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
DEFINE GCC5_AARCH64_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error\r
DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS)\r
DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
+DEFINE GCC5_ASLCC_FLAGS = DEF(GCC49_ASLCC_FLAGS) -fno-lto\r
\r
####################################################################################\r
#\r
\r
####################################################################################\r
#\r
*_GCC48_IA32_ASLPP_PATH = DEF(GCC48_IA32_PREFIX)gcc\r
*_GCC48_IA32_RC_PATH = DEF(GCC48_IA32_PREFIX)objcopy\r
\r
*_GCC48_IA32_ASLPP_PATH = DEF(GCC48_IA32_PREFIX)gcc\r
*_GCC48_IA32_RC_PATH = DEF(GCC48_IA32_PREFIX)objcopy\r
\r
-*_GCC48_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32\r
+*_GCC48_IA32_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS) -m32\r
*_GCC48_IA32_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
*_GCC48_IA32_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m32 -march=i386\r
*_GCC48_IA32_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
*_GCC48_IA32_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
*_GCC48_IA32_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m32 -march=i386\r
*_GCC48_IA32_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
*_GCC48_X64_ASLPP_PATH = DEF(GCC48_X64_PREFIX)gcc\r
*_GCC48_X64_RC_PATH = DEF(GCC48_X64_PREFIX)objcopy\r
\r
*_GCC48_X64_ASLPP_PATH = DEF(GCC48_X64_PREFIX)gcc\r
*_GCC48_X64_RC_PATH = DEF(GCC48_X64_PREFIX)objcopy\r
\r
-*_GCC48_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64\r
+*_GCC48_X64_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS) -m64\r
*_GCC48_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
*_GCC48_X64_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m64\r
*_GCC48_X64_DLINK_FLAGS = DEF(GCC48_X64_DLINK_FLAGS)\r
*_GCC48_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
*_GCC48_X64_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m64\r
*_GCC48_X64_DLINK_FLAGS = DEF(GCC48_X64_DLINK_FLAGS)\r
*_GCC48_ARM_ARCHCC_FLAGS = -mthumb\r
*_GCC48_ARM_PLATFORM_FLAGS = -march=armv7-a\r
\r
*_GCC48_ARM_ARCHCC_FLAGS = -mthumb\r
*_GCC48_ARM_PLATFORM_FLAGS = -march=armv7-a\r
\r
-*_GCC48_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC48_ARM_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS)\r
*_GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS)\r
*_GCC48_ARM_ASM_FLAGS = DEF(GCC48_ARM_ASM_FLAGS)\r
*_GCC48_ARM_DLINK_FLAGS = DEF(GCC48_ARM_DLINK_FLAGS)\r
*_GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS)\r
*_GCC48_ARM_ASM_FLAGS = DEF(GCC48_ARM_ASM_FLAGS)\r
*_GCC48_ARM_DLINK_FLAGS = DEF(GCC48_ARM_DLINK_FLAGS)\r
*_GCC48_AARCH64_ASLPP_PATH = ENV(GCC48_AARCH64_PREFIX)gcc\r
*_GCC48_AARCH64_RC_PATH = ENV(GCC48_AARCH64_PREFIX)objcopy\r
\r
*_GCC48_AARCH64_ASLPP_PATH = ENV(GCC48_AARCH64_PREFIX)gcc\r
*_GCC48_AARCH64_RC_PATH = ENV(GCC48_AARCH64_PREFIX)objcopy\r
\r
-*_GCC48_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC48_AARCH64_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS)\r
*_GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)\r
*_GCC48_AARCH64_ASM_FLAGS = DEF(GCC48_AARCH64_ASM_FLAGS)\r
*_GCC48_AARCH64_DLINK_FLAGS = DEF(GCC48_AARCH64_DLINK_FLAGS)\r
*_GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)\r
*_GCC48_AARCH64_ASM_FLAGS = DEF(GCC48_AARCH64_ASM_FLAGS)\r
*_GCC48_AARCH64_DLINK_FLAGS = DEF(GCC48_AARCH64_DLINK_FLAGS)\r
*_GCC49_IA32_ASLPP_PATH = DEF(GCC49_IA32_PREFIX)gcc\r
*_GCC49_IA32_RC_PATH = DEF(GCC49_IA32_PREFIX)objcopy\r
\r
*_GCC49_IA32_ASLPP_PATH = DEF(GCC49_IA32_PREFIX)gcc\r
*_GCC49_IA32_RC_PATH = DEF(GCC49_IA32_PREFIX)objcopy\r
\r
-*_GCC49_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32\r
+*_GCC49_IA32_ASLCC_FLAGS = DEF(GCC49_ASLCC_FLAGS) -m32\r
*_GCC49_IA32_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
*_GCC49_IA32_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m32 -march=i386\r
*_GCC49_IA32_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
*_GCC49_IA32_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
*_GCC49_IA32_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m32 -march=i386\r
*_GCC49_IA32_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
*_GCC49_X64_ASLPP_PATH = DEF(GCC49_X64_PREFIX)gcc\r
*_GCC49_X64_RC_PATH = DEF(GCC49_X64_PREFIX)objcopy\r
\r
*_GCC49_X64_ASLPP_PATH = DEF(GCC49_X64_PREFIX)gcc\r
*_GCC49_X64_RC_PATH = DEF(GCC49_X64_PREFIX)objcopy\r
\r
-*_GCC49_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64\r
+*_GCC49_X64_ASLCC_FLAGS = DEF(GCC49_ASLCC_FLAGS) -m64\r
*_GCC49_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
*_GCC49_X64_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m64\r
*_GCC49_X64_DLINK_FLAGS = DEF(GCC49_X64_DLINK_FLAGS)\r
*_GCC49_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
*_GCC49_X64_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m64\r
*_GCC49_X64_DLINK_FLAGS = DEF(GCC49_X64_DLINK_FLAGS)\r
*_GCC49_ARM_ARCHCC_FLAGS = -mthumb\r
*_GCC49_ARM_PLATFORM_FLAGS = -march=armv7-a\r
\r
*_GCC49_ARM_ARCHCC_FLAGS = -mthumb\r
*_GCC49_ARM_PLATFORM_FLAGS = -march=armv7-a\r
\r
-*_GCC49_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC49_ARM_ASLCC_FLAGS = DEF(GCC49_ASLCC_FLAGS)\r
*_GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS)\r
*_GCC49_ARM_ASM_FLAGS = DEF(GCC49_ARM_ASM_FLAGS)\r
*_GCC49_ARM_DLINK_FLAGS = DEF(GCC49_ARM_DLINK_FLAGS)\r
*_GCC49_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS)\r
*_GCC49_ARM_ASM_FLAGS = DEF(GCC49_ARM_ASM_FLAGS)\r
*_GCC49_ARM_DLINK_FLAGS = DEF(GCC49_ARM_DLINK_FLAGS)\r
*_GCC49_AARCH64_ASLPP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc\r
*_GCC49_AARCH64_RC_PATH = ENV(GCC49_AARCH64_PREFIX)objcopy\r
\r
*_GCC49_AARCH64_ASLPP_PATH = ENV(GCC49_AARCH64_PREFIX)gcc\r
*_GCC49_AARCH64_RC_PATH = ENV(GCC49_AARCH64_PREFIX)objcopy\r
\r
-*_GCC49_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC49_AARCH64_ASLCC_FLAGS = DEF(GCC49_ASLCC_FLAGS)\r
*_GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
*_GCC49_AARCH64_ASM_FLAGS = DEF(GCC49_AARCH64_ASM_FLAGS)\r
*_GCC49_AARCH64_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS)\r
*_GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
*_GCC49_AARCH64_ASM_FLAGS = DEF(GCC49_AARCH64_ASM_FLAGS)\r
*_GCC49_AARCH64_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS)\r
*_GCC5_IA32_ASLPP_PATH = DEF(GCC5_IA32_PREFIX)gcc\r
*_GCC5_IA32_RC_PATH = DEF(GCC5_IA32_PREFIX)objcopy\r
\r
*_GCC5_IA32_ASLPP_PATH = DEF(GCC5_IA32_PREFIX)gcc\r
*_GCC5_IA32_RC_PATH = DEF(GCC5_IA32_PREFIX)objcopy\r
\r
-*_GCC5_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto\r
+*_GCC5_IA32_ASLCC_FLAGS = DEF(GCC5_ASLCC_FLAGS) -m32\r
*_GCC5_IA32_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie\r
*_GCC5_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 -march=i386\r
*_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie\r
*_GCC5_IA32_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie\r
*_GCC5_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 -march=i386\r
*_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie\r
*_GCC5_X64_ASLPP_PATH = DEF(GCC5_X64_PREFIX)gcc\r
*_GCC5_X64_RC_PATH = DEF(GCC5_X64_PREFIX)objcopy\r
\r
*_GCC5_X64_ASLPP_PATH = DEF(GCC5_X64_PREFIX)gcc\r
*_GCC5_X64_RC_PATH = DEF(GCC5_X64_PREFIX)objcopy\r
\r
-*_GCC5_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto\r
+*_GCC5_X64_ASLCC_FLAGS = DEF(GCC5_ASLCC_FLAGS) -m64\r
*_GCC5_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
*_GCC5_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64\r
*_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS)\r
*_GCC5_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
*_GCC5_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64\r
*_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS)\r
*_GCC5_ARM_RC_PATH = ENV(GCC5_ARM_PREFIX)objcopy\r
\r
*_GCC5_ARM_ARCHCC_FLAGS = -mthumb\r
*_GCC5_ARM_RC_PATH = ENV(GCC5_ARM_PREFIX)objcopy\r
\r
*_GCC5_ARM_ARCHCC_FLAGS = -mthumb\r
-*_GCC5_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC5_ARM_ASLCC_FLAGS = DEF(GCC5_ASLCC_FLAGS)\r
*_GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC5_ARM_ASLDLINK_FLAGS)\r
*_GCC5_ARM_ASM_FLAGS = DEF(GCC5_ARM_ASM_FLAGS)\r
*_GCC5_ARM_DLINK2_FLAGS = DEF(GCC5_ARM_DLINK2_FLAGS)\r
*_GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC5_ARM_ASLDLINK_FLAGS)\r
*_GCC5_ARM_ASM_FLAGS = DEF(GCC5_ARM_ASM_FLAGS)\r
*_GCC5_ARM_DLINK2_FLAGS = DEF(GCC5_ARM_DLINK2_FLAGS)\r
*_GCC5_AARCH64_ASLPP_PATH = ENV(GCC5_AARCH64_PREFIX)gcc\r
*_GCC5_AARCH64_RC_PATH = ENV(GCC5_AARCH64_PREFIX)objcopy\r
\r
*_GCC5_AARCH64_ASLPP_PATH = ENV(GCC5_AARCH64_PREFIX)gcc\r
*_GCC5_AARCH64_RC_PATH = ENV(GCC5_AARCH64_PREFIX)objcopy\r
\r
-*_GCC5_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC5_AARCH64_ASLCC_FLAGS = DEF(GCC5_ASLCC_FLAGS)\r
*_GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC5_AARCH64_ASLDLINK_FLAGS)\r
*_GCC5_AARCH64_ASM_FLAGS = DEF(GCC5_AARCH64_ASM_FLAGS)\r
*_GCC5_AARCH64_DLINK2_FLAGS = DEF(GCC5_AARCH64_DLINK2_FLAGS)\r
*_GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC5_AARCH64_ASLDLINK_FLAGS)\r
*_GCC5_AARCH64_ASM_FLAGS = DEF(GCC5_AARCH64_ASM_FLAGS)\r
*_GCC5_AARCH64_DLINK2_FLAGS = DEF(GCC5_AARCH64_DLINK2_FLAGS)\r