Kristian Hagsted Rasmussen
2012-Nov-26 16:30 UTC
How to set GCC version for ovmf compilation
Hi all I''m trying to compile xen tools with OVMF firmware, but the compilation fails due to the hardcoded use of gcc44 for OVMF. If I download the EDK2 source I get the same error if I set gcc to 4.4 but actually have 4.7, however, a patch is available for gcc47. I have tried to install both gcc46 and get the same error. I also tried gcc44 by instead get a python error. Gcc46 and gcc47 error when running make dist-tools "/usr/bin/gcc" -c -x assembler -imacros /home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/DEBUG/AutoGen.h -m64 --64 -melf_x86_64 -o /home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Library/BaseUefiCpuLib/X64 -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Library/BaseUefiCpuLib -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/DEBUG -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/MdePkg -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/MdePkg/Include -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/MdePkg/Include/X64 -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg -I/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Include /home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.iii gcc: error: unrecognized command line option â--64â gcc: error: unrecognized command line option â-melf_x86_64â make[7]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib'' make[7]: *** [/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj] Error 1 build.py... : error 7000: Failed to execute command make tbuild [/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib] build.py... : error F002: Failed to build module /home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf [X64, GCC44, DEBUG] - Failed - Build end time: 17:08:23, Nov.26 2012 Build total time: 00:00:02 make[6]: *** [ovmf.bin] Error 1 make[6]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools/firmware/ovmf-remote'' make[5]: *** [subdir-all-ovmf] Error 2 make[5]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools/firmware'' make[4]: *** [subdirs-all] Error 2 make[4]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools/firmware'' make[3]: *** [all] Error 2 make[3]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools/firmware'' make[2]: *** [subdir-install-firmware] Error 2 make[2]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools'' make[1]: *** [subdirs-install] Error 2 make[1]: Leaving directory `/home/kristian/xen/xen-unstable.hg/tools'' make: *** [install-tools] Error 2 GCC44 error when running ./configure --enable-ovmf checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for bison... /usr/bin/bison checking for flex... /usr/bin/flex checking for perl... /usr/bin/perl checking for ocamlc... no checking for ocaml... no checking for ocamldep... no checking for ocamlmktop... no checking for ocamlmklib... no checking for ocamldoc... no checking for ocamlbuild... no checking for bash... /bin/bash checking for python... /usr/bin/python checking for python version >= 2.3 ... yes checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for python-config... /usr/bin/python-config checking Python.h usability... yes checking Python.h presence... yes checking for Python.h... yes checking for PyArg_ParseTuple in -lpython2.7... no configure: error: Unable to find a suitable python development library I am using a Ubuntu guantal with recompiled binutils to include all targets. But is should not have any effect. The problem is that I cannot set the gcc version for OVMF to say 4.6 which should do the job fine. Hope someone has a workaround. However, it might be best to make the BaseTools for EDK2 (OVMF) on in the make routine instead of relying on a precompiled set. Best regards Kristian Hagsted Rasmussen
Reasonably Related Threads
- [PATCH v2] tools/firmware: Fix ovmf build with gcc version different from 4.4
- [PATCH] tools: ovmf debug build only if tools debug is enabled
- [xen-unstable test] 12043: regressions - FAIL
- Re: [edk2] [PATCH RFC v2 7/7] OvmfPkg: introduce XenMemMapInitialization
- Slow OVMF start