Hi! On 2025-02-26T23:08:29+0000, Jonathan Wakely <jwak...@redhat.com> wrote: > On Wed, 26 Feb 2025 at 20:53, Thomas Schwinge <tschwi...@baylibre.com> wrote: >> On 2025-02-26T10:50:11+0000, Jonathan Wakely <jwak...@redhat.com> wrote: >> > On Wed, 26 Feb 2025 at 10:47, Jonathan Wakely <jwak...@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=[...]'.) > > I have used it occasionally, but long ago. > >> > 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. > > Yeah, I think I'd prefer that. OK with that change, and maybe change > the comment in acinclude.m4 from "Prepend the additional flags." to > something like: > > # Append the additional flags to any that came from configure.host
Like in the attached "libstdc++: Allow 'configure.host' to pre-set 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'"? Grüße Thomas
>From e1fb37969e915442536c7f9bafdd862c06e2d3cd Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tschwi...@baylibre.com> Date: Wed, 26 Feb 2025 10:13:51 +0100 Subject: [PATCH] libstdc++: Allow 'configure.host' to pre-set 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS' In particular, 'GLIBCXX_ENABLE_CXX_FLAGS' shouldn't overwrite 'EXTRA_CXX_FLAGS' (and instead append any additional '--enable-cxx-flags=[...]'). libstdc++-v3/ * acinclude.m4 (GLIBCXX_ENABLE_CXX_FLAGS): Append to 'EXTRA_CXX_FLAGS' any additional flags. * configure: Regenerate. * configure.host: Document 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'. --- libstdc++-v3/acinclude.m4 | 4 +++- libstdc++-v3/configure | 4 +++- libstdc++-v3/configure.host | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index b3423d7957a..e668d2dba27 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -3267,9 +3267,11 @@ AC_DEFUN([GLIBCXX_ENABLE_CXX_FLAGS], [dnl AC_MSG_ERROR([compiler flags start with a -]) ;; esac done + + # Append the additional flags to any that came from 'configure.host'. + EXTRA_CXX_FLAGS="$EXTRA_CXX_FLAGS $enable_cxx_flags" fi - EXTRA_CXX_FLAGS="$enable_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..78758285f21 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -19450,9 +19450,11 @@ fi as_fn_error $? "compiler flags start with a -" "$LINENO" 5 ;; esac done + + # Append the additional flags to any that came from 'configure.host'. + EXTRA_CXX_FLAGS="$EXTRA_CXX_FLAGS $enable_cxx_flags" fi - EXTRA_CXX_FLAGS="$enable_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 7bc43071616..933a43f241c 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