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?

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
  

Reply via email to