Wednesday, August 26, 2026

Re: [libcxx22] fallout

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); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Fix with Makefile tweaks and libcxx22 fixes. I think this will unbreak the sparce64 build. OK? diff --git a/games/cataclysm-dda/Makefile b/games/cataclysm-dda/Makefile index 6623808252a..4fa7089570e 100644 --- a/games/cataclysm-dda/Makefile +++ b/games/cataclysm-dda/Makefile @@ -1,11 +1,10 @@ -BROKEN-sparc64= strtoll_l strtoull_l strtod_l strtof_l not declared this scope - COMMENT= rogue-like zombie survival game CATEGORIES= games V= 0.I DIST_TUPLE+= github CleverRaven Cataclysm-DDA ${V} . PKGNAME= cataclysm-dda-${V:S/-RELEASE//} +REVISION= 0 HOMEPAGE= https://cataclysmdda.org MAINTAINER= Kirill Bychkov <kirby@openbsd.org> @@ -37,14 +36,15 @@ CONFIGURE_ARGS = -DLOCALIZE=ON \ -DBACKTRACE=OFF \ -DGIT_VERSION=${V} \ -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS} -I${LOCALBASE}/include \ - -I${X11BASE}/include -I${X11BASE}/include/freetype2 \ - -DCATCH_CONFIG_NO_COUNTER" \ - -DCMAKE_EXE_LINKER_FLAGS="-L${LOCALBASE}/lib \ - -L${X11BASE}/lib -lintl -liconv" \ -DCMAKE_INSTALL_LOCALEDIR="${PREFIX}/share/locale" \ -Wno_dev +CXXFLAGS += -I${LOCALBASE}/include -I${X11BASE}/include +CXXFLAGS += -I${X11BASE}/include/freetype2 +CXXFLAGS += -DCATCH_CONFIG_NO_COUNTER + +MODCMAKE_LDFLAGS = -L${LOCALBASE}/lib -L${X11BASE}/lib -lintl -liconv + SUBST_VARS += V .if ${FLAVOR:Mno_x11} @@ -64,6 +64,8 @@ MAN_TILES= -tiles NO_TEST= Yes +MODCMAKE_POLICY_VERSION_OVERRIDE = Yes + post-extract: mv ${WRKSRC}/src/third-party/flatbuffers/ \ ${WRKSRC}/src/third-party/flatbuffers_int/ @@ -103,8 +105,9 @@ post-install: ${INSTALL_DATA} ${WRKSRC}/data/xdg/org.cataclysmdda.CataclysmDDA.appdata.xml \ ${PREFIX}/share/metainfo/ - - -MODCMAKE_POLICY_VERSION_OVERRIDE = Yes - .include <bsd.port.mk> + +# fix build when ccache is installed but not enabled +.if ${USE_CCACHE:L} != "yes" +CONFIGURE_ARGS += -DCATA_CCACHE=OFF +.endif diff --git a/games/cataclysm-dda/patches/patch-src_third-party_flatbuffers_int_util_h b/games/cataclysm-dda/patches/patch-src_third-party_flatbuffers_int_util_h new file mode 100644 index 00000000000..0236fedf7af --- /dev/null +++ b/games/cataclysm-dda/patches/patch-src_third-party_flatbuffers_int_util_h @@ -0,0 +1,15 @@ +Index: src/third-party/flatbuffers_int/util.h +--- src/third-party/flatbuffers_int/util.h.orig ++++ src/third-party/flatbuffers_int/util.h +@@ -243,6 +243,11 @@ inline std::string IntToStringHex(int i, int xdigits) + #else + #define __strtof_impl(s, pe) static_cast<float>(_strtod_l(s, pe, ClassicLocale::Get())) +

No comments:

Post a Comment