[Buildroot] [PATCH] efivar: fix build with old gcc versions

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sat Jun 25 11:57:12 UTC 2016


Hello,

On Sat, 25 Jun 2016 00:39:07 +0200, Erico Nunes wrote:

> On Fri, Jun 24, 2016 at 3:47 PM, Thomas Petazzoni
> <thomas.petazzoni at free-electrons.com> wrote:
> > diff --git a/package/efivar/efivar.mk b/package/efivar/efivar.mk
> > index 3d37916..de48bc9 100644
> > --- a/package/efivar/efivar.mk
> > +++ b/package/efivar/efivar.mk
> > @@ -31,10 +31,11 @@ define EFIVAR_BUILD_CMDS
> >         # makeguids is an internal host tool and must be built separately with
> >         # $(HOST_CC), otherwise it gets cross-built.
> >         $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) \
> > -               CFLAGS="$(HOST_CFLAGS) -std=c99" \
> > -               $(MAKE) -C $(@D)/src makeguids
> > +               CFLAGS="$(HOST_CFLAGS) -std=gnu99" \
> > +               $(MAKE) -C $(@D)/src gcc_cflags=  makeguids  
> 
> I have tested the patch and it fixes the build break even in an
> environment with host gcc 4.6.

Thanks for testing. I did test it successfully on my build server that
uses gcc 4.4 as the host gcc, so it's working with a host gcc even
older than 4.6.

> I had prepared a patch adding depends on BR2_HOST_GCC_AT_LEAST_4_7 to
> the efivar Config.in file as an alternative solution, but I think that
> it would be needed to add BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 as well.
> Didn't finish testing that as I didn't have any target gcc 4.6
> toolchain at hand.
> The flags -std=gnu11 , -Wmaybe-uninitialized , -flto are only present
> in gcc 4.7 and up and are also used by the target build. Buildroot
> doesn't support building its own toolchains with target gcc 4.6
> anymore but it's still possible to select it when using an external
> toolchain. It would probably still break for that case.
> If that is a problem that we don't care much now, then I can add my
> Tested-by on this patch. To cover all cases, the patch to add the
> 'depends on' on both host and target gcc 4.7 would probably also fix
> it.

I agree that a dependency on >= 4.7 for the target gcc should also be
added. Can be done as a separate patch. Can you send such a patch?

Thanks,

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


More information about the buildroot mailing list