[PATCH] libstdc++: Allow 'configure.host' to modify 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'
Thomas Schwinge
tschwinge@baylibre.com
Wed Feb 26 20:53:34 GMT 2025
Hi Jonathan!
Sorry for not providing more context initially.
On 2025-02-26T10:50:11+0000, Jonathan Wakely <jwakely@redhat.com> wrote:
> On Wed, 26 Feb 2025 at 10:47, Jonathan Wakely <jwakely@redhat.com> wrote:
>> On Wed, 26 Feb 2025 at 10:19, Thomas Schwinge wrote:
>> > In particular, 'GLIBCXX_ENABLE_CXX_FLAGS' shouldn't overwrite 'EXTRA_CXX_FLAGS'
>> > (and prepend any additional '--enable-cxx-flags=[...]').
>>
>> This seems good, but why prepend instead of append here?
>> If there are important flags passed down from top-level configure that
>> shouldn't be replaced by the libstdc++ --enable-cxx-flags option, can
>> we mention that in the new comment in acinclude.m4?
>
> Oh sorry, they're more likely to be from configure.host not from the
> top-level, right?
That's right: for GCN, nvptx configurations inject '-fno-exceptions' etc.
via 'libstdc++-v3/configure.host'.
> But if we prepend, then when users put bad options in
> --enable-cxx-flags we silently override that with good target-specific
> ones from configure.host
That was my intention indeed -- but not a strong one. ;-) (I've myself
never used '--enable-cxx-flags=[...]'.)
> Maybe if users explicitly give bad options, they should get an error,
> or a bad result?
That's fine for me. So if you think that makes more sense, then I'll be
happy to swap it around. I agree that it would be more standard to allow
user-specified flags to override the default ones.
Grüße
Thomas
> Or maybe I just don't understand the context properly :-)
>
>
>>
>> >
>> > libstdc++-v3/
>> > * acinclude.m4 (GLIBCXX_ENABLE_CXX_FLAGS): Prepend any additional
>> > flags to 'EXTRA_CXX_FLAGS'.
>> > * configure: Regenerate.
>> > * configure.host: Document 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'.
>> > ---
>> > libstdc++-v3/acinclude.m4 | 3 ++-
>> > libstdc++-v3/configure | 3 ++-
>> > libstdc++-v3/configure.host | 4 ++++
>> > 3 files changed, 8 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
>> > index b3423d7957a..3287dab3b89 100644
>> > --- a/libstdc++-v3/acinclude.m4
>> > +++ b/libstdc++-v3/acinclude.m4
>> > @@ -3269,7 +3269,8 @@ AC_DEFUN([GLIBCXX_ENABLE_CXX_FLAGS], [dnl
>> > done
>> > fi
>> >
>> > - EXTRA_CXX_FLAGS="$enable_cxx_flags"
>> > + # Prepend the additional flags.
>> > + EXTRA_CXX_FLAGS="$enable_cxx_flags $EXTRA_CXX_FLAGS"
>> > AC_MSG_RESULT($EXTRA_CXX_FLAGS)
>> > AC_SUBST(EXTRA_CXX_FLAGS)
>> > ])
>> > diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
>> > index e115ee55739..ba908577a66 100755
>> > --- a/libstdc++-v3/configure
>> > +++ b/libstdc++-v3/configure
>> > @@ -19452,7 +19452,8 @@ fi
>> > done
>> > fi
>> >
>> > - EXTRA_CXX_FLAGS="$enable_cxx_flags"
>> > + # Prepend the additional flags.
>> > + EXTRA_CXX_FLAGS="$enable_cxx_flags $EXTRA_CXX_FLAGS"
>> > { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXTRA_CXX_FLAGS" >&5
>> > $as_echo "$EXTRA_CXX_FLAGS" >&6; }
>> >
>> > diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
>> > index 45f55b250ce..1e84c78af30 100644
>> > --- a/libstdc++-v3/configure.host
>> > +++ b/libstdc++-v3/configure.host
>> > @@ -61,6 +61,10 @@
>> > #
>> > # It possibly modifies the following variables:
>> > #
>> > +# EXTRA_CFLAGS extra flags to pass when compiling C code
>> > +#
>> > +# EXTRA_CXX_FLAGS extra flags to pass when compiling C++ code
>> > +#
>> > # OPT_LDFLAGS extra flags to pass when linking the library, of
>> > # the form '-Wl,blah'
>> > # (defaults to empty in acinclude.m4)
>> > --
>> > 2.34.1
>> >
More information about the Libstdc++
mailing list