[Buildroot] [PATCH v2 2/5] gnu-efi: new package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Feb 19 18:57:55 UTC 2014


Dear Yann E. MORIN,

On Wed, 19 Feb 2014 18:53:38 +0100, Yann E. MORIN wrote:

> > +ifeq ($(BR2_i386),y)
> > +GNU_EFI_PLATFORM=ia32
> > +else ifeq ($(BR2_x86_64),y)
> > +GNU_EFI_PLATFORM=x86_64
> > +endif
> 
> Shouldn't we do like for grub: some EFI-BIOS on x86-64 machines might be
> a 32-bit EFI-BIOS, in which case we'd want to build the 32-bit version
> even if the target is 64-bit?

No, because it doesn't work. Building gnu-efi 32 bits with a 64 bits
toolchain fails.

> > +define GNU_EFI_BUILD_CMDS
> > +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
> > +		$(TARGET_CONFIGURE_OPTS) \
> > +		ARCH=$(GNU_EFI_PLATFORM)
> > +endef
> > +
> > +define GNU_EFI_INSTALL_TARGET_CMDS
> > +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
> > +		$(TARGET_CONFIGURE_OPTS) \
> > +		INSTALLROOT=$(TARGET_DIR) \
> > +		PREFIX=/usr ARCH=$(GNU_EFI_PLATFORM) install
> > +endef
> > +
> > +define GNU_EFI_INSTALL_STAGING_CMDS
> > +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
> > +		$(TARGET_CONFIGURE_OPTS) \
> > +		INSTALLROOT=$(STAGING_DIR) \
> > +		PREFIX=/usr ARCH=$(GNU_EFI_PLATFORM) install
> > +endef
> 
> Why install in target/ and staging/, and not in images/ ?

Because gnu-efi is not a bootloader. gnu-efi is a set of header files
and a small library to be linked into an EFI application. So installing
it in images/ doesn't make any sense.

However, I agree that the installation to the target is useless, so I
will remove it.

> Also, this is used to build EFI applications, so I'd expect some host
> tools to be built and isntalled, too. What am I missing?

There are no host tools. As far as I understand, gnu-efi only contains
runtime code, to be linked into an EFI application that will be
executed on the target.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the buildroot mailing list