|
From: <oli...@us...> - 2013-07-31 10:58:29
|
Revision: 2593
http://sourceforge.net/p/edk2-buildtools/code/2593
Author: oliviermartin
Date: 2013-07-31 10:58:26 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
BaseTools/tools_def.template: Added ARM and AARCH64 support to GCC45 / GCC46 / GCC47 toolchains
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <oli...@ar...>
Acked-by: Jordan Justen <jor...@in...>
Reviewed-by: Yingke Liu <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/Conf/tools_def.template
Modified: trunk/BaseTools/Conf/tools_def.template
===================================================================
--- trunk/BaseTools/Conf/tools_def.template 2013-07-31 10:55:44 UTC (rev 2592)
+++ trunk/BaseTools/Conf/tools_def.template 2013-07-31 10:58:26 UTC (rev 2593)
@@ -2581,6 +2581,7 @@
DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
+DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_IPF_DLINK_FLAGS = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
@@ -2592,9 +2593,11 @@
DEFINE GCC_ASLPP_FLAGS = -x c -E -P
DEFINE GCC_ASLCC_FLAGS = -x c
DEFINE GCC_WINDRES_FLAGS = -J rc -O coff
-DEFINE GCC_IA32_RC_FLAGS = -I binary -O elf32-i386 -B i386 --rename-section .data=.hii
-DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386 --rename-section .data=.hii
-DEFINE GCC_IPF_RC_FLAGS = -I binary -O elf64-ia64-little -B ia64 --rename-section .data=.hii
+DEFINE GCC_IA32_RC_FLAGS = -I binary -O elf32-i386 -B i386 --rename-section .data=.hii
+DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386 --rename-section .data=.hii
+DEFINE GCC_IPF_RC_FLAGS = -I binary -O elf64-ia64-little -B ia64 --rename-section .data=.hii
+DEFINE GCC_ARM_RC_FLAGS = -I binary -O elf32-littlearm -B arm --rename-section .data=.hii
+DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii
DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32
@@ -2620,6 +2623,9 @@
DEFINE GCC46_IA32_X64_DLINK_FLAGS = DEF(GCC45_IA32_X64_DLINK_FLAGS)
DEFINE GCC46_X64_DLINK_FLAGS = DEF(GCC45_X64_DLINK_FLAGS)
DEFINE GCC46_ASM_FLAGS = DEF(GCC45_ASM_FLAGS)
+DEFINE GCC46_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
+DEFINE GCC46_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -mno-unaligned-access -Wno-address -fomit-frame-pointer
+DEFINE GCC46_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm
DEFINE GCC47_IA32_CC_FLAGS = DEF(GCC46_IA32_CC_FLAGS)
DEFINE GCC47_X64_CC_FLAGS = DEF(GCC46_X64_CC_FLAGS)
@@ -2628,6 +2634,12 @@
DEFINE GCC47_IA32_X64_DLINK_FLAGS = DEF(GCC46_IA32_X64_DLINK_FLAGS)
DEFINE GCC47_X64_DLINK_FLAGS = DEF(GCC46_X64_DLINK_FLAGS)
DEFINE GCC47_ASM_FLAGS = DEF(GCC46_ASM_FLAGS)
+DEFINE GCC47_ARM_ASM_FLAGS = DEF(GCC46_ARM_ASM_FLAGS)
+DEFINE GCC47_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
+DEFINE GCC47_ARM_CC_FLAGS = DEF(GCC46_ARM_CC_FLAGS)
+DEFINE GCC47_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address
+DEFINE GCC47_ARM_DLINK_FLAGS = DEF(GCC46_ARM_DLINK_FLAGS)
+DEFINE GCC47_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
####################################################################################
#
@@ -2910,6 +2922,34 @@
*_GCC46_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC46_X64_OBJCOPY_FLAGS =
+##################
+# GCC46 ARM definitions
+##################
+*_GCC46_ARM_OBJCOPY_PATH = echo
+*_GCC46_ARM_CC_PATH = ENV(GCC46_ARM_PREFIX)gcc
+*_GCC46_ARM_SLINK_PATH = ENV(GCC46_ARM_PREFIX)ar
+*_GCC46_ARM_DLINK_PATH = ENV(GCC46_ARM_PREFIX)ld
+*_GCC46_ARM_ASLDLINK_PATH = ENV(GCC46_ARM_PREFIX)ld
+*_GCC46_ARM_ASM_PATH = ENV(GCC46_ARM_PREFIX)gcc
+*_GCC46_ARM_PP_PATH = ENV(GCC46_ARM_PREFIX)gcc
+*_GCC46_ARM_VFRPP_PATH = ENV(GCC46_ARM_PREFIX)gcc
+*_GCC46_ARM_ASLCC_PATH = ENV(GCC46_ARM_PREFIX)gcc
+*_GCC46_ARM_ASLPP_PATH = ENV(GCC46_ARM_PREFIX)gcc
+*_GCC46_ARM_RC_PATH = ENV(GCC46_ARM_PREFIX)objcopy
+
+*_GCC46_ARM_ARCHCC_FLAGS = -mthumb
+*_GCC46_ARM_PLATFORM_FLAGS = -march=armv7-a
+
+*_GCC46_ARM_ASM_FLAGS = DEF(GCC46_ARM_ASM_FLAGS)
+*_GCC46_ARM_DLINK_FLAGS = DEF(GCC46_ARM_DLINK_FLAGS)
+*_GCC46_ARM_PLATFORM_FLAGS = -march=armv7-a
+*_GCC46_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC46_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS)
+*_GCC46_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+
+ DEBUG_GCC46_ARM_CC_FLAGS = DEF(GCC46_ARM_CC_FLAGS) -O0
+RELEASE_GCC46_ARM_CC_FLAGS = DEF(GCC46_ARM_CC_FLAGS) -Wno-unused-but-set-variable
+
####################################################################################
#
# GCC 4.7 - This configuration is used to compile under Linux to produce
@@ -2975,6 +3015,57 @@
*_GCC47_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC47_X64_OBJCOPY_FLAGS =
+##################
+# GCC47 ARM definitions
+##################
+*_GCC47_ARM_CC_PATH = ENV(GCC47_ARM_PREFIX)gcc
+*_GCC47_ARM_SLINK_PATH = ENV(GCC47_ARM_PREFIX)ar
+*_GCC47_ARM_DLINK_PATH = ENV(GCC47_ARM_PREFIX)ld
+*_GCC47_ARM_ASLDLINK_PATH = ENV(GCC47_ARM_PREFIX)ld
+*_GCC47_ARM_ASM_PATH = ENV(GCC47_ARM_PREFIX)gcc
+*_GCC47_ARM_PP_PATH = ENV(GCC47_ARM_PREFIX)gcc
+*_GCC47_ARM_VFRPP_PATH = ENV(GCC47_ARM_PREFIX)gcc
+*_GCC47_ARM_ASLCC_PATH = ENV(GCC47_ARM_PREFIX)gcc
+*_GCC47_ARM_ASLPP_PATH = ENV(GCC47_ARM_PREFIX)gcc
+*_GCC47_ARM_RC_PATH = ENV(GCC47_ARM_PREFIX)objcopy
+
+*_GCC46_ARM_ARCHCC_FLAGS = -mthumb
+*_GCC46_ARM_PLATFORM_FLAGS = -march=armv7-a
+
+*_GCC47_ARM_ASM_FLAGS = DEF(GCC47_ARM_ASM_FLAGS)
+*_GCC47_ARM_DLINK_FLAGS = DEF(GCC47_ARM_DLINK_FLAGS)
+*_GCC47_ARM_PLATFORM_FLAGS = -march=armv7-a
+*_GCC47_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC47_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS)
+*_GCC47_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+
+ DEBUG_GCC47_ARM_CC_FLAGS = DEF(GCC47_ARM_CC_FLAGS) -O0
+RELEASE_GCC47_ARM_CC_FLAGS = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-variable
+
+##################
+# GCC47 AARCH64 definitions
+##################
+*_GCC47_AARCH64_CC_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
+*_GCC47_AARCH64_SLINK_PATH = ENV(GCC47_AARCH64_PREFIX)ar
+*_GCC47_AARCH64_DLINK_PATH = ENV(GCC47_AARCH64_PREFIX)ld
+*_GCC47_AARCH64_ASLDLINK_PATH = ENV(GCC47_AARCH64_PREFIX)ld
+*_GCC47_AARCH64_ASM_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
+*_GCC47_AARCH64_PP_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
+*_GCC47_AARCH64_VFRPP_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
+*_GCC47_AARCH64_ASLCC_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
+*_GCC47_AARCH64_ASLPP_PATH = ENV(GCC47_AARCH64_PREFIX)gcc
+*_GCC47_AARCH64_RC_PATH = ENV(GCC47_AARCH64_PREFIX)objcopy
+
+*_GCC47_AARCH64_ASM_FLAGS = DEF(GCC47_AARCH64_ASM_FLAGS)
+*_GCC47_AARCH64_DLINK_FLAGS = DEF(GCC47_AARCH64_DLINK_FLAGS)
+*_GCC47_AARCH64_PLATFORM_FLAGS =
+*_GCC47_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
+*_GCC47_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS)
+*_GCC47_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
+
+ DEBUG_GCC47_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS) -O0
+RELEASE_GCC47_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
+
####################################################################################
#
# Cygwin GCC And Intel ACPI Compiler
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|