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
Apparently Analagous 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
