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

Reply via email to