[Buildroot] [PATCH 1/3] package/libabseil-cpp: enforce C++11

Thomas Petazzoni thomas.petazzoni at bootlin.com
Fri Oct 30 08:15:22 UTC 2020


On Fri, 30 Oct 2020 08:44:06 +0100
"Michael Nosthoff" <buildroot at heine.tech> wrote:

> > Is this fixing a build issue? What was the thing that made you write
> > this patch?
> 
> I had the links to the broken autobuilders in the Cover letter. Should I put them in the commit instead?

Sorry, I had missed the cover letters, since I'm mainly looking at
patches through patchwork. And yes, the link to the autobuilder failure
should be in the commit log, like this:

Fixes:

  http://autobuild.buildroot.org/...

> > > +# abseil needs c++ >= 11 but doesn't set this anymore,
> > > +# before gcc6 the default is 98.
> > > +ifeq ($(BR2_GCC_AT_LEAST_6_0),)
> > > +LIBABSEIL_CPP_CONF_OPTS += -DCMAKE_CXX_STANDARD=11
> > > +endif
> > > +
> > > +ifeq ($(BR2_HOST_GCC_AT_LEAST_6_0),)
> > > +HOST_LIBABSEIL_CPP_CONF_OPTS += -DCMAKE_CXX_STANDARD=11
> > > +endif  
> > 
> > Can we do it unconditionally ?  
> 
> Sure, that was the fallback before (In the CMakeLists). And grpc also just sets C++11 as fallback.
> 
> I just thought that, as abseil is all about "bringing newer C++
> features to older C++ versions", it would make sense to build it with
> C++14/17 when it's the compilers default. But as grpc is also built
> with "only" C++11 this might not be the best idea in the first place.

In fact, let's turn this around: if abseil uses C++11 features, then it
should by itself pass -std=c++11 to the compiler, by setting the
appropriate CXX_STANDARD in its CMakeLists.txt. There is no reason
Buildroot should have to help here. So isn't an abseil CMakeLists.txt
fix (submitted upstream) more appropriate here ?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list