|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v6 21/31] build: set XEN_BUILD_EFI earlier
On Thu, Aug 05, 2021 at 09:27:18AM +0200, Jan Beulich wrote:
> On 01.07.2021 16:10, Anthony PERARD wrote:
> > We are going to need the variable XEN_BUILD_EFI earlier.
> >
> > This early check is using "try-run" to allow to have a temporary
> > output file in case it is needed for $(CC) to build the *.c file.
> >
> > The "efi/check.o" file is still needed in "arch/x86/Makefile" so the
> > check is currently duplicated.
>
> Why is this? Can't you ...
>
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -126,7 +126,7 @@ $(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
> > ifneq ($(efi-y),)
> >
> > # Check if the compiler supports the MS ABI.
> > -export XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o
> > efi/check.o 2>/dev/null && echo y)
> > +XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o efi/check.o
> > 2>/dev/null && echo y)
> > CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
>
> ... use here what you ...
>
> > --- a/xen/arch/x86/arch.mk
> > +++ b/xen/arch/x86/arch.mk
> > @@ -60,5 +60,10 @@ ifeq ($(CONFIG_UBSAN),y)
> > $(call cc-option-add,CFLAGS_UBSAN,CC,-fno-sanitize=alignment)
> > endif
> >
> > +ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
> > +# Check if the compiler supports the MS ABI.
> > +export XEN_BUILD_EFI := $(call try-run,$(CC) $(CFLAGS) -c
> > arch/x86/efi/check.c -o "$$TMPO",y)
> > +endif
>
> ... export here?
The problem with the check for EFI support is that there several step,
with a step depending on the binary produced by the previous one.
XEN_BUILD_EFI
In addition to check "__ms_abi__" attribute is supported by $CC, the
file "efi/check.o" is produced.
XEN_BUILD_PE
It is using "efi/check.o" to check for PE support and produce
"efi/check.efi".
"efi/check.efi" is also used by the Makefile for additional checks
(mkreloc).
So, if I let the duplicated check for $(XEN_BUILD_EFI) is that it felt
wrong to produce "efi/check.o" in "arch/x86/arch.mk" and then later use
it in "arch/x86/Makefile". I could maybe move the command that create
efi/check.o in the $(XEN_BUILD_PE) check, or I could try to move most of
the checks done for EFI into x86/arch.mk. Or maybe just creating the
"efi/check.o" file in x86/arch.mk and use it in x86/Makefile, with a
comment.
What do you think?
Thanks,
--
Anthony PERARD
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |