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

Reply via email to