On 04/26/2016 09:29 PM, Aaron M. Ucko wrote: > Source: efitools > Version: 1.4.2-2 > Severity: important > Justification: fails to build from source > > Thanks for fixing efitools's Build-Depends setting! Automated builds > now get further, but still fail on i386, with > > In file included from simple_file.c:7:0: > /usr/include/efi/efi.h:35:21: fatal error: efibind.h: No such file or > irectory > > (kfreebsd-amd64 builds also still fail, but with a different error > I'll report separately.) > > The i386 version of this header turns out to be in > /usr/include/efi/ia32, not /usr/include/efi/i686. I see no sign of a > config script that would report this location, so I suppose efitools > will need to hardcode the mapping. > > I also noticed two further complications that will affect linking on > i386: the crt0 file is likewise named crt0-efi-ia32.o, and 32-bit > gnu-efi libraries are in /usr/lib32, which isn't in the default search > path. > > Could you please take a look? >
Hi, This specific bug is fixed in the upcoming upload (new upstream release 1.7.0) However, a new problem appears: ld: i386 architecture of input file `HelloWorld.o' is incompatible with i386:x86-64 output Indeed, on PC architectures, EFI executables are 64-bits EXE files. I think the solution is to restrict the build to linux-amd64, and mark the package as Multi-arch: foreign, however that would cover only the embedded EFI files, not the tools to access UEFI variables. That said, these tools use the efivars pseudo-filesystem and will only work on Linux. So, I think the next upload will restrict the package to linux-amd64 only. Regards, Pierre