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 happened. (I think Ard Biesheuvel said he had plans
to fix this, but apparently nothing came of this.) 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
is that the -z linker option used for force 4K section alignment only works
ELF versions of GCC. With the MinGW linker (which is targeted for PE/COFF),
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 thoroughly 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.

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

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to