From 1767e1a62c66747d6a362ee9a35f1250546feabc Mon Sep 17 00:00:00 2001 Message-Id: <1767e1a62c66747d6a362ee9a35f1250546feabc.1466032233.git.wpaul@windriver.com> In-Reply-To: References: From: Bill Paul Date: Wed, 15 Jun 2016 16:02:08 -0700 Subject: [PATCH 1/2] This commit updates the support for MinGW/UNIXGCC cross-build toolchain. The following changes have been made: - The mingw-gcc-build.py script now uses GCC 4.9.3 and binutils 2.25. - GCC 4.3.0 used underscore decoration for both IA32 and X64 builds, but the official convention is that it's only used on IA32 and newer versions of GCC MinGW now follow this convention. A new set of macros for the X64 case in tools_def have been added to remove the explict exclusion of underscores, and the UNIXGCC tool definition has been updated to use them. - Explcit DEBUG and RELEASE versions of CC_FLAGS have been added for the UNIXGCC tool definition so that -Wno-unused-but-set-variable can be specified for RELEASE builds - Documentation has been updated in tools_def to indicate the new GCC and binutils versions Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bill Paul --- BaseTools/Conf/tools_def.template | 19 ++++++++++++------- BaseTools/gcc/mingw-gcc-build.py | 11 +++++------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 2065fa3..c75ee38 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -324,8 +324,8 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G # Intel(r) ACPI Compiler (iasl.exe) from # https://acpica.org/downloads # UNIXGCC -UNIX- Requires: -# GCC 4.3.0 -# binutils 2.20.51.0.5 +# GCC 4.9.3 +# binutils 2.25 # Optional: # Required to build platforms or ACPI tables: # Intel(r) ACPI Compiler from @@ -4333,9 +4333,11 @@ DEFINE GCC_ARM_AARCH64_DLINK_COMMON= --emit-relocs -nostdlib --gc-sections -u $( DEFINE GCC_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20 DEFINE GCC_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20 DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) +DEFINE GCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) --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_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 DEFINE GCC_IPF_OBJCOPY_FLAGS = -I elf64-ia64-little -O efi-bsdrv-ia64 DEFINE GCC_IPF_SYMRENAME_FLAGS = --redefine-sym memcpy=CopyMem @@ -4463,9 +4465,9 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS) *_UNIXGCC_*_ASL_PATH = DEF(UNIX_IASL_BIN) *_UNIXGCC_IA32_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0 -*_UNIXGCC_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_FLAGS) --image-base=0 +*_UNIXGCC_X64_DLINK_FLAGS = DEF(GCC_X64_DLINK_FLAGS) --image-base=0 *_UNIXGCC_IA32_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) -*_UNIXGCC_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_ASLDLINK_FLAGS) +*_UNIXGCC_X64_ASLDLINK_FLAGS = DEF(GCC_X64_ASLDLINK_FLAGS) *_UNIXGCC_*_ASM_FLAGS = DEF(GCC_ASM_FLAGS) *_UNIXGCC_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_UNIXGCC_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) @@ -4490,10 +4492,11 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS) *_UNIXGCC_IA32_VFRPP_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)gcc *_UNIXGCC_IA32_RC_PATH = DEF(UNIXGCC_IA32_PETOOLS_PREFIX)objcopy -*_UNIXGCC_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS) *_UNIXGCC_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) *_UNIXGCC_IA32_OBJCOPY_FLAGS = *_UNIXGCC_IA32_NASM_FLAGS = -f win32 +DEBUG_UNIXGCC_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS) +RELEASE_UNIXGCC_IA32_CC_FLAGS = DEF(GCC_IA32_CC_FLAGS) -Wno-unused-but-set-variable ################## # X64 definitions @@ -4510,10 +4513,11 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS) *_UNIXGCC_X64_RC_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)objcopy *_UNIXGCC_X64_OBJCOPY_PATH = DEF(UNIXGCC_X64_PETOOLS_PREFIX)objcopy -*_UNIXGCC_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS) *_UNIXGCC_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) *_UNIXGCC_X64_OBJCOPY_FLAGS = *_UNIXGCC_X64_NASM_FLAGS = -f win64 +DEBUG_UNIXGCC_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS) +RELEASE_UNIXGCC_X64_CC_FLAGS = DEF(GCC_X64_CC_FLAGS) -Wno-unused-but-set-variable ################## # IPF definitions @@ -4531,11 +4535,12 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS) *_UNIXGCC_IPF_SYMRENAME_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy *_UNIXGCC_IPF_RC_PATH = DEF(UNIXGCC_IPF_PETOOLS_PREFIX)objcopy -*_UNIXGCC_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS) *_UNIXGCC_IPF_DLINK_FLAGS = DEF(GCC_IPF_DLINK_FLAGS) *_UNIXGCC_IPF_OBJCOPY_FLAGS = DEF(GCC_IPF_OBJCOPY_FLAGS) *_UNIXGCC_IPF_SYMRENAME_FLAGS = DEF(GCC_IPF_SYMRENAME_FLAGS) *_UNIXGCC_IPF_RC_FLAGS = DEF(GCC_IPF_RC_FLAGS) +DEBUG_UNIXGCC_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS) +RELEASE_UNIXGCC_IPF_CC_FLAGS = DEF(GCC_IPF_CC_FLAGS) -Wno-unused-but-set-variable #################################################################################### diff --git a/BaseTools/gcc/mingw-gcc-build.py b/BaseTools/gcc/mingw-gcc-build.py index 420b3de..e8b36bf 100755 --- a/BaseTools/gcc/mingw-gcc-build.py +++ b/BaseTools/gcc/mingw-gcc-build.py @@ -208,10 +208,10 @@ class SourceFiles: source_files_common = { 'binutils': { - 'url': 'http://www.kernel.org/pub/linux/devel/binutils/' + \ + 'url': 'http://ftpmirror.gnu.org/binutils/' + \ 'binutils-$version.tar.bz2', - 'version': '2.20.51.0.5', - 'md5': '6d2de7cdf7a8389e70b124e3d73b4d37', + 'version': '2.25', + 'md5': 'd9f3303f802a5b6b0bb73a335ab89d66', }, } @@ -219,8 +219,8 @@ class SourceFiles: 'gcc': { 'url': 'http://ftpmirror.gnu.org/gcc/' + \ 'gcc-$version/gcc-$version.tar.bz2', - 'version': '4.3.0', - 'md5': '197ed8468b38db1d3481c3111691d85b', + 'version': '4.9.3', + 'md5': '6f831b4d251872736e8e9cc09746f327', }, } @@ -457,7 +457,6 @@ class Builder: configure, '--target=%s' % self.config.target_combo, '--prefix=' + prefix, - '--with-sysroot=' + prefix, '--disable-werror', ) if os.path.exists('/opt/local/include/gmp.h'): -- 2.4.6