[Mesa-dev] [PATCH] gallium/auxiliary: Fix Autotools on Android (v2)

Chad Versace chadversary at chromium.org
Thu Jul 26 21:52:25 UTC 2018


On Wed 25 Jul 2018, Tomasz Figa wrote:
> Hi Chad,
> 
> On Wed, Jul 25, 2018 at 10:11 AM Chad Versace <chadversary at chromium.org> wrote:
> >
> > Problem 1: u_debug_stack_android.cpp transitively included
> > "pipe/p_compiler.h", but src/gallium/include was missing from the C++
> > include path.
> >
> > Problem 2: Add -std=c++11 to AM_CXXFLAGS. Android's libbacktrace headers
> > require C++11, but the Android toolchain (at least in the Chrome OS SDK)
> > does not enable C++11 by default.
> >
> > v2: Add -std=c++11.
> >
> > Cc: Gurchetan Singh <gurchetansingh at chromium.org>
> > Cc: Eric Engestrom <eric.engestrom at intel.com>
> > ---
> >  src/gallium/auxiliary/Makefile.am | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)

[snip]

> >  if HAVE_PLATFORM_ANDROID
> > +# Android's libbacktrace headers required C++11, but the Android toolchain (at
> > +# least in the Chrome OS SDK) does not enable C++11 by default.
> > +AM_CXXFLAGS += $(CXX11_CXXFLAGS)
> > +
> 
> This is something that would normally be handled by the .pc file for
> given library. Package build system shouldn't be polluted with such
> system-specific low level dependencies.

Normally, I would agree. "If libbacktrace needs a CXXFLAG, then put in
the pc file". That's reasonable for most flags, because most flags are
*additive*. But the -std flag is not. If backtrace.pc added '-std=c++11'
to CXXFLAGS, but a different package required c++14, how should Mesa
resolve that conflict?

As precedent, I searched all pc files on my Debian machine. The only pc
files that add -std to CFLAGS or CXXFLAGS are the icu-*.pc files. And
those files should serve as anti-precedent in most cases; they are badly
written compared to all other pc files I've seen.


More information about the mesa-dev mailing list