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

Re: [Xen-devel] [PATCH] x86/efi: fix build with linkers that support both coff-x86-64 and pe-x86-64

>>> On 05.01.18 at 17:43, <roger.pau@xxxxxxxxxx> wrote:
> When using a linker that supports both formats the following error
> will be triggered:
> efi/buildid.o: file not recognized: File format is ambiguous
> efi/buildid.o: matching formats: coff-x86-64 pe-x86-64
> Solve this by specifying the buildid.o format to pe-x86-64.

Nice idea. I don't suppose this works with a linker only
supporting coff-x86-64 though, but I assume such a linker
wouldn't be usable for building xen.efi anyway.

> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -188,20 +188,20 @@ endif
>  $(TARGET).efi: prelink-efi.o $(note_file) efi.lds efi/relocs-dummy.o 
> $(BASEDIR)/common/symbols-dummy.o efi/mkreloc
>       $(foreach base, $(VIRT_BASE) $(ALT_BASE), \
>                 $(guard) $(LD) $(call EFI_LDFLAGS,$(base)) -T efi.lds -N $< 
> efi/relocs-dummy.o \
> -                     $(BASEDIR)/common/symbols-dummy.o $(note_file) -o 
> $(@D)/.$(@F).$(base).0 &&) :
> +                     $(BASEDIR)/common/symbols-dummy.o -b pe-x86-64 
> $(note_file) -o $(@D)/.$(@F).$(base).0 &&) :

I wonder whether introducing e.g

note_file_options := -b pe-x86-64 $(note_file)

wouldn't be better than repeating the same thing three times.
Of course it would need to be clearly spelled out that this
needs to come last (or another -b would need to follow). This
would additionally deal with the case where note.o instead of
efi/buildid.o is being linked in (you don't want -b pe-x86-64
with that one, I suppose), or when build ID support isn't
available at all (the new option would then be stray and might
be warned about).


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.