From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=66.187.233.73; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 36F1C21CAD998 for ; Thu, 10 May 2018 07:42:36 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 77A23402333B; Thu, 10 May 2018 14:42:35 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-122-93.rdu2.redhat.com [10.10.122.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id BBA01202698A; Thu, 10 May 2018 14:42:34 +0000 (UTC) To: apianti@aol.com References: <1634a4575fc-1dd7-e1c8@webjas-vae180.srv.aolmail.net> From: Laszlo Ersek Cc: edk2-devel@lists.01.org Message-ID: <463855a2-2b5b-a636-fab7-59e82bae80a5@redhat.com> Date: Thu, 10 May 2018 16:42:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <1634a4575fc-1dd7-e1c8@webjas-vae180.srv.aolmail.net> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Thu, 10 May 2018 14:42:35 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Thu, 10 May 2018 14:42:35 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lersek@redhat.com' RCPT:'' Subject: Re: Trying to build OVMF fails X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 14:42:36 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 05/10/18 15:37, apianti@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/FaultTolerantWriteDxe/DEBUG/FaultTolerantWriteDxe.efi /home/development/Desktop/edk2/Build/OvmfIa32/RELEASE_GCC5/IA32/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe/DEBUG/FaultTolerantWriteDxe.dll > GenFw: ERROR 3000: Invalid > /home/development/Desktop/edk2/Build/OvmfIa32/RELEASE_GCC5/IA32/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe/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/FaultTolerantWriteDxe/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