On Wed, 26 Aug 2026 09:22:16 +0200
Rafael Sadowski <[email protected]> wrote:
> On Fri Aug 21, 2026 at 02:15:34PM +0200, Theo Buehler wrote:
> > Here is the directly libcxx22-related breakage of my first bulk.
> >
> > There may be a few more because mono got stuck with a weird error.
> > And I did not try to build the V8 monsters: codex, deno, chromiums
> > and a few others because my machine isn't beefy enough. I don't
> > think anything super important is directly affected or hiding
> > behind those. So as far as ports are concerned, I think we can land
> > libcxx22 whenever we want:
> >
> > audio/ncmpcpp
> > audio/rubberband
> > cad/freecad
> > databases/mongodb/44
> > games/cataclysm-dda
> > games/dxx-rebirth
> > games/flightgear/base
> > games/keeperrl
> > mail/kopano/core
> > misc/subsurface
> > shells/fish/v3
> > textproc/lttoolbox
> >
> > There are basically two main classes of failures: comparison
> > operators and locale things and a few odd ones like fish/v3 and
> >
> > audio/ncmpcpp
> > /usr/include/c++/v1/__algorithm/sift_down.h:49:39: error: no
> > matching function for call to object of type 'LocaleBasedSorting'
> > 49 | } else if ((__child + 1) < __len && __comp(__first[__child],
> > __first[__child + 1])) { |
> > ^~~~~~
> >
> > audio/rubberband
> > ../rubberband-4.0.0/src/common/mathmisc.h:58:1: error: unknown type
> > name 'size_t'; did you mean 'std::size_t'? 58 | size_t
> > roundUp(size_t value); // to nearest power of two | ^~~~~~
> > | std::size_t
> >
> > cad/freecad
> > /usr/include/c++/v1/__utility/lazy_synth_three_way_comparator.h:45:21:
> > error: no matching function for call to object of type 'const
> > std::less<void>' 45 | bool __result = __comp_(__lhs_, __rhs_);
> > | ^~~~~~~
> >
> > databases/mongodb/44
> > /usr/include/c++/v1/__utility/lazy_synth_three_way_comparator.h:45:21:
> > error: no matching function for call to object of type 'const
> > std::less<void>' 45 | bool __result = __comp_(__lhs_, __rhs_);
> > | ^~~~~~~
> >
> > games/cataclysm-dda
> > /usr/ports/pobj/cataclysm-dda-0.I/Cataclysm-DDA-0.I/src/third-party/flatbuffers_int/util.h:267:12:
> > error: use of undeclared identifier 'strtoll_l' 267 | *val =
> > __strtoll_impl(str, endptr, base); |
> > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > games/dxx-rebirth
> > scons: *** Failed to initialize profile ('d1x', ''): C++ compiler
> > does not support std::make_unique_for_overwrite, std::make_unique.
> > See build/config.log for details. Stop.
>
>
> I updated dxx-rebirth to the latest upstream commit. (We can commit
> this in two different commits)
>
> std::make_unique and std::make_unique_for_overwrite are marked as
> [[nodiscard]] in libcxx22.
>
> OK?
Untested (no time this week sadly), but looks good to me so if it builds
ok thfr@
>
> diff --git a/games/dxx-rebirth/Makefile b/games/dxx-rebirth/Makefile
> index 3f651616480..9d2d4b2054c 100644
> --- a/games/dxx-rebirth/Makefile
> +++ b/games/dxx-rebirth/Makefile
> @@ -1,8 +1,8 @@
> COMMENT = source port of Descent, a 6-degrees-of-freedom
> shooter GH_ACCOUNT = dxx-rebirth
> GH_PROJECT = dxx-rebirth
> -GH_COMMIT = b749eadb4080f596ce90ef7b2be97d7c1213567f
> -DISTNAME = dxx-rebirth-0.60pl20260412
> +GH_COMMIT = cb0473dbd5fb6e261223080ba1e60b6d7a228954
> +DISTNAME = dxx-rebirth-0.60pl20260823
> CATEGORIES = games x11
>
> HOMEPAGE = https://www.dxx-rebirth.com/
> diff --git a/games/dxx-rebirth/distinfo b/games/dxx-rebirth/distinfo
> index f49a44d3850..6b5c67c368a 100644
> --- a/games/dxx-rebirth/distinfo
> +++ b/games/dxx-rebirth/distinfo
> @@ -1,2 +1,2 @@
> -SHA256 (dxx-rebirth-0.60pl20260412-b749eadb.tar.gz) =
> qCz2J9cIJjO71BfroOG9zhJ87OCf4aWs3rPYiT/aQss= -SIZE
> (dxx-rebirth-0.60pl20260412-b749eadb.tar.gz) = 2292934 +SHA256
> (dxx-rebirth-0.60pl20260823-cb0473db.tar.gz) =
> lSLigb6/80aTZHHSQI6TXQdYanH3ghyDe1cQkWoORF4= +SIZE
> (dxx-rebirth-0.60pl20260823-cb0473db.tar.gz) = 2183482 diff --git
> a/games/dxx-rebirth/patches/patch-SConstruct
> b/games/dxx-rebirth/patches/patch-SConstruct index
> a06224ad07d..abd39540158 100644 ---
> a/games/dxx-rebirth/patches/patch-SConstruct +++
> b/games/dxx-rebirth/patches/patch-SConstruct @@ -1,7 +1,29 @@ Index:
> SConstruct --- SConstruct.orig +++ SConstruct
> -@@ -2179,7 +2179,7 @@ help:assume compiler supports
> __attribute__((unused)) +@@ -601,8 +601,8 @@ struct A_%(N)s
> +
> Cxx20RequiredFeature('std::make_unique_for_overwrite', '''
> + #include <memory>
> + ''', '''
> +- std::make_unique_for_overwrite<int>();
> +- std::make_unique_for_overwrite<int[]>(1);
> ++ (void)std::make_unique_for_overwrite<int>();
> ++ (void)std::make_unique_for_overwrite<int[]>(1);
> + '''),
> + Cxx20RequiredFeature('requires clause', '''
> + template <typename T>
> +@@ -754,8 +754,8 @@ int a_%(N)s = U_%(N)s + 1;
> + Cxx14RequiredFeature('std::make_unique', '''
> + #include <memory>
> + ''', '''
> +- std::make_unique<int>(0);
> +- std::make_unique<int[]>(1);
> ++ (void)std::make_unique<int>(0);
> ++ (void)std::make_unique<int[]>(1);
> + '''),
> + Cxx11RequiredFeature('std::addressof', '''
> + #include <memory>
> +@@ -2254,7 +2254,7 @@ help:assume compiler supports
> __attribute__((unused))
> self._check_macro(context,macro_name=macro_name,macro_value=macro_value,test="""
> dxx_compiler_attribute_unused static void a(){}
> @@ -10,7 +32,7 @@ Index: SConstruct
>
> @_custom_test
> def check_cxx11_static_assert(self,context,_f='''
> -@@ -2495,7 +2495,7 @@ $ x86_64-pc-linux-gnu-g++-5.4.0 -x c++ -S
> -Wformat -o +@@ -2570,7 +2570,7 @@ $ x86_64-pc-linux-gnu-g++-5.4.0 -x
> c++ -S -Wformat -o @_custom_test
> def check_compiler_useless_cast(self,context):
> Compile = self.Compile
> @@ -19,7 +41,7 @@ Index: SConstruct
> if Compile(context, text='''
> /*
> * SDL on Raspbian provokes a warning from -Wuseless-cast
> -@@ -4723,11 +4723,6 @@ class DXXCommon(LazyObjectConstructor):
> +@@ -4882,11 +4882,6 @@ class DXXCommon(LazyObjectConstructor):
> env = self.env
> user_settings = self.user_settings
>