-----Original Message-----
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo
Ersek
Sent: Thursday, May 10, 2018 10:43 PM
To: apia...@aol.com
Cc: edk2-devel@lists.01.org
Subject: Re: [edk2] Trying to build OVMF fails
On 05/10/18 15:37, apia...@aol.com wrote:
I am having a problem building OVMF to use as firmware for QEMU to test EFI
binaries. I can only build the X64 arch of OVMF in linux.
In windows both IA32, IA32/X64, and X64 all fail with some variation of this
error:
"C:\Program Files (x86)\Microsoft Visual Studio
12.0\Vc\bin\x86_amd64\cl.exe"
/Fod:\development\edk2\Build\OvmfX64\RELEASE_VS2013x86\X64\MdeModulePkg\Bus\Pci\EhciDxe\EhciDxe\OUTPUT\.\EhciUrb.obj
/nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c-
/GR- /GF /Gw /D MDEPKG_NDEBUG /D
DISABLE_NEW_DEPRECATED_INTERFACES
/Id:\development\edk2\MdeModulePkg\Bus\Pci\EhciDxe
/Id:\development\edk2\Build\OvmfX64\RELEASE_VS2013x86\X64\MdeModulePkg\Bus\Pci\EhciDxe\EhciDxe\DEBUG
/Id:\development\edk2\MdePkg /Id:\development\edk2\MdePkg\Include
/Id:\development\edk2\MdePkg\Include\X64
/Id:\development\edk2\MdeModulePkg /Id:\development\edk2\MdeModulePkg\Include
d:\development\edk2\MdeModulePkg\Bus\Pci\EhciDxe\EhciUrb.c
'c:\Program' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Windows
Kits\8.0\bin\x64\rc.exe' : return code '0x1'
Stop.
Sorry, I can't comment on the VS toolchains (I don't use them).
And in linux IA32 and IA32/X64 fail with some varation of this error:
"GenFw" -e DXE_DRIVER -o
/home/development/Desktop/edk2/Build/OvmfIa32/RELEASE_GCC5/IA32/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTole
rantWriteDxe/DEBUG/FaultTolerantWriteDxe.efi
/home/development/Desktop/edk2/Build/OvmfIa32/RELEASE_GCC5/IA32/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTole
rantWriteDxe/DEBUG/FaultTolerantWriteDxe.dll
GenFw: ERROR 3000: Invalid
/home/development/Desktop/edk2/Build/OvmfIa32/RELEASE_GCC5/IA32/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTole
rantWriteDxe/DEBUG/FaultTolerantWriteDxe.dll unsupported ELF EM_386 relocation
0xa.
GenFw: ERROR 3000: Invalid
/home/development/Desktop/edk2/Build/OvmfIa32/RELEASE_GCC5/IA32/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTole
rantWriteDxe/DEBUG/FaultTolerantWriteDxe.dll unsupported ELF EM_386 relocation
0x9.
Interesting; what gcc version are you using with the GCC5 toolchain?
I've just built OVMF like this:
$ build \
-a IA32 \
-p OvmfPkg/OvmfPkgIa32.dsc \
-D SMM_REQUIRE \
-D SECURE_BOOT_ENABLE \
-t GCC5 \
-n 4 \
-b RELEASE \
-D HTTP_BOOT_ENABLE \
--cmd-len=65536 \
--hash
with an up-to-date Fedora 28 install:
- gcc (GCC) 8.1.1 20180502 (Red Hat 8.1.1-1)
- binutils-2.29.1-23.fc28.x86_64
How can I get the IA32 build working? Also I see ARM and AARCH64 OVMF images in
packages, how are these being built? I get that
the architectures are unsupported.
Do you mean that "distro packages are unsupported by upstream edk2"?
Edk2 does support ARM and AARCH64.
It is true that the OvmfPkg DSC files target only IA32, IA32X64, and
X64, but the ArmVirtPkg DSC files target ARM and AARCH64 QEMU and Xen
virtual machines. You can build ArmVirtPkg platforms with
cross-compilers from x86_64, or natively on AARCH64 at the least (I've
never tried native building on ARM).
Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel