On Fri, 28 Aug 2026 11:12:51 +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.
> > 
> > games/flightgear/base
> > /usr/ports/pobj/flightgear-2024.1.3/flightgear-2024.1.3/src/FDM/JSBSim/input_output/string_utilities.cpp:91:18:
> > error: use of undeclared identifier 'strtod_l' 91 |   double value
> > = strtod_l(first, nullptr, numeric_c.Locale); |
> > ^~~~~~~~ 1 error generated.
> > ninja: build stopped: subcommand failed.
> > 
> > games/keeperrl
> > /usr/include/c++/v1/__algorithm/sift_down.h:49:46: error: type
> > 'vector<Creature *>::Iterator<Creature **>' does not provide a
> > subscript operator 49 |   } else if ((__child + 1) < __len &&
> > __comp(__first[__child], __first[__child + 1])) { |
> >                              ^~~~~~~ ~~~~~~~  
> 
> OK?

Thanks, ok! (include REVISION bump)
> 
> diff --git a/games/keeperrl/patches/patch-my_containers_h
> b/games/keeperrl/patches/patch-my_containers_h new file mode 100644
> index 00000000000..c1fc215fd23
> --- /dev/null
> +++ b/games/keeperrl/patches/patch-my_containers_h
> @@ -0,0 +1,16 @@
> +Unbreak libcxx22 build
> +Index: my_containers.h
> +--- my_containers.h.orig
> ++++ my_containers.h
> +@@ -333,6 +333,11 @@ class vector {
> +       return *it;
> +     }
> + 
> ++    decltype(auto) operator[] (difference_type n) const {
> ++      checkParent();
> ++      return it[n];
> ++    }
> ++
> +     decltype(auto) operator-> () const {
> +       checkParent();
> +       return *it;

Reply via email to