[PATCH 6/9 v4] libstdc++, contracts: Add base P2900R14 contracts support.

Jonathan Wakely jwakely@redhat.com
Wed Jan 28 10:32:50 GMT 2026


On Wed, 28 Jan 2026 at 10:25 +0000, Jonathan Wakely wrote:
>On Tue, 27 Jan 2026 at 00:33 +0000, Iain Sandoe wrote:
>>diff --git a/libstdc++-v3/src/experimental/Makefile.am b/libstdc++-v3/src/experimental/Makefile.am
>>index e6d41cf66eb2..e428aef23c04 100644
>>--- a/libstdc++-v3/src/experimental/Makefile.am
>>+++ b/libstdc++-v3/src/experimental/Makefile.am
>>@@ -39,10 +39,16 @@ endif
>>headers =
>>
>>sources = \
>>-	contract.cc
>>+	contract26.cc
>>
>># vpath % $(top_srcdir)/src/experimental
>>
>>+
>>+contract26.lo: contract26.cc
>>+	$(LTCXXCOMPILE) -std=gnu++26 -fcontracts -c $<
>>+contract26.o: contract26.cc
>>+	$(CXXCOMPILE) -std=gnu++26 -fcontracts -c $<
>>+
>>libstdc__exp_la_SOURCES = $(sources)
>>
>>libstdc__exp_la_LIBADD = \
>>diff --git a/libstdc++-v3/src/experimental/Makefile.in b/libstdc++-v3/src/experimental/Makefile.in
>>index 8cb0acd4e68b..a9248197f8c7 100644
>>--- a/libstdc++-v3/src/experimental/Makefile.in
>>+++ b/libstdc++-v3/src/experimental/Makefile.in
>>@@ -152,7 +152,7 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
>>LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
>>@ENABLE_FILESYSTEM_TS_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/filesystem/libstdc++fsconvenience.la
>>@ENABLE_BACKTRACE_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
>>-am__objects_1 = contract.lo
>>+am__objects_1 = contract26.lo
>>am_libstdc__exp_la_OBJECTS = $(am__objects_1)
>>libstdc__exp_la_OBJECTS = $(am_libstdc__exp_la_OBJECTS)
>>AM_V_lt = $(am__v_lt_@AM_V@)
>>@@ -458,10 +458,8 @@ toolexeclib_LTLIBRARIES = libstdc++exp.la
>>@ENABLE_BACKTRACE_TRUE@backtrace_lib = $(top_builddir)/src/libbacktrace/libstdc++_libbacktrace.la
>>headers =
>>sources = \
>>-	contract.cc
>>+	contract26.cc
>>
>>-
>>-# vpath % $(top_srcdir)/src/experimental
>>libstdc__exp_la_SOURCES = $(sources)
>>libstdc__exp_la_LIBADD = \
>>	$(top_builddir)/src/c++23/libc++23convenience.la \
>>@@ -480,7 +478,7 @@ libstdc__exp_la_DEPENDENCIES = \
>># OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
>># as the occasion calls for it.
>>AM_CXXFLAGS = \
>>-	-std=gnu++17 -nostdinc++ \
>>+	-std=gnu++20 -nostdinc++ \
>>	$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
>>	$(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
>>	$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \
>
>I'm not sure where this change came from, it looks like a remnant from
>some earlier change to src/experimental/Makefile.am which was
>reverted, but the Makefile.in wasn't regenerated.
>
>I'll fix it now.

Actually ... we probably *should* change that file to use gnu++20 now,
but we should do it in Makefile.am instead :)



More information about the Libstdc++ mailing list