From d6247f6ed086759563bd4b4f16ea5bff4f42094a Mon Sep 17 00:00:00 2001 Message-Id: From: Bill Paul Date: Wed, 15 Jun 2016 16:10:33 -0700 Subject: [PATCH 0/2] *** SUBJECT HERE *** A while ago there was some talk of updating the UNIXGCC toolchain to support a newer version of GCC and binutils. Unfortunately after almost a year, nothing has changed. (I think Ard Biesheuvel said he had plans to fix this, but apparently he was distracted by other things.) In fact things have gotten slightly worse. I've listened to all the various opinions about keeping the UNIXGCC toolchain option around, but I still think it's useful, and the fixes to update it and make it work again are small, so I'm hoping there won't be tremendous resistance them. This patch set updates the mingw-gcc-build.py script to use GCC 4.9.3 and binutils 2.25, and updates the rules for UNIXGCC in tools_def accordingly. The only real issue that the newer compiler version must not use underscore decorations for X64 builds. Aside from fixing the build script and rules, the only problem I ran into with building is that the -z linker option used for force 4K section alignment only works ELF versions of GCC. With MinGW, you need to use different flags. I tried to adjust the rules to add an exception for the UNIXGCC case without breaking the other cases. This should be reviewed to make sure I did it right. With these fixes I was able to build working IA32 and X64 release images of the OVMF firmware on my FreeBSD/amd64 host machine. Bill Paul (2): This commit updates the support for MinGW/UNIXGCC cross-build toolchain. This commit makes OvmfPkg builds work with UNIXGCC again. BaseTools/Conf/tools_def.template | 19 ++++++++++++------- BaseTools/gcc/mingw-gcc-build.py | 11 +++++------ OvmfPkg/OvmfPkgIa32.dsc | 3 ++- OvmfPkg/OvmfPkgIa32X64.dsc | 3 ++- OvmfPkg/OvmfPkgX64.dsc | 3 ++- 5 files changed, 23 insertions(+), 16 deletions(-) -- 2.4.6