[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#822724: efitools: FTBFS on i386: efibind.h: No such file or directory



On Fri, Apr 29, 2016 at 06:20:55PM +0200, pollux wrote:
>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.

Ummm, what? 32-bit i386 (ia32) should be supported just fine. If it's
not working, that's just a bug.

>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.

Please don't do that. There are *4* Debian Linux architectures that
should be able to work here: amd64, i386, arm64 and armhf.

-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
"Every time you use Tcl, God kills a kitten." -- Malcolm Ray


Reply to: