From: Theo Buehler Subject: libc++ 19.1.7 ports fallout To: ports@openbsd.org Date: Mon, 23 Jun 2025 07:27:54 +0200 I ran an update for libc++ 19.1.7 through an amd64 bulk with a local fix to unbreak libexecinfo. By far the most common cause for breakage is this change: The base template for std::char_traits has been removed in LLVM 19. If you are using std::char_traits with types other than char, wchar_t, char8_t, char16_t, char32_t or a custom character type for which you specialized std::char_traits, your code will stop working. Many upstreams already have fixes, otherwise freebsd and gentoo likely have something. Another common cause is the new bsd_locale_fallbacks.h which causes some weird breakage. This is OpenBSD specific since FreeBSD and NetBSD don't use this thanks to xlocale support. Not sure where the bug is, whether in OpenBSD's C headers or in the libc++ headers. It can often be worked around by bumping _XOPEN_SOURCE to 800 or similar. textproc/nlohmann-json will need an update to at least 3.11.3. I updated it locally to 3.12.0 to avoid some breakage (one test breaks because of LC_NUMERIC), but this bump fest will need to be tested and handled by someone on -current with a clean tree. cad/kicad: https://github.com/nanodbc/nanodbc/pull/434 and implicit instantiation of undefined template 'std::char_traits' databases/libpqxx: implicit instantiation of undefined template 'std::char_traits' databases/mongodb/44! implicit instantiation of undefined template 'std::char_traits' devel/cbmc implicit instantiation of undefined template 'std::char_traits' devel/mygui implicit instantiation of undefined template 'std::char_traits' devel/arm-none-eabi/gcc,arm devel/or1k-elf/gcc devel/riscv-elf/gcc devel/riscv32-esp-elf/gcc-bootstrap devel/xtensa-esp32-elf/gcc-bootstrap devel/xtensa-esp32s2-elf/gcc-bootstrap devel/xtensa-esp32s3-elf/gcc-bootstrap devel/xtensa-lx106-elf/gcc-bootstrap #define islower(c) do_not_use_islower_with_safe_ctype editors/abiword implicit instantiation of undefined template 'std::char_traits' editors/le ./edit.h:158:26: note: expanded from macro 'hex' 158 | #define hex (editmode==HEXM) emulators/dosbox-x implicit instantiation of undefined template 'std::char_traits' games/endless-sky! reference to 'queue' is ambiguous games/openrct2 implicit instantiation of undefined template 'std::char_traits' games/recoil-rts fatal error: 'experimental/memory_resource' file not found games/scorched3d implicit instantiation of undefined template 'std::char_traits' games/xye reference to 'lock' is ambiguous graphics/mapnik implicit instantiation of undefined template 'std::char_traits' graphics/mypaint use of undeclared identifier 'vasprintf'; did you mean 'vsprintf'? graphics/opencolorio no member named 'strtol_l' in the global namespace; did you mean 'strtoll_l'? graphics/zxing-cpp implicit instantiation of undefined template 'std::char_traits' inputmethods/fcitx-hangul implicit instantiation of undefined template 'std::char_traits' lang/apl implicit instantiation of undefined template 'std::char_traits' mail/grommunio/gromox use of undeclared identifier 'time' math/igraph use of undeclared identifier 'vasprintf'; did you mean 'vsprintf'? multimedia/sfml implicit instantiation of undefined template 'std::char_traits' net/kea,mysql implicit instantiation of undefined template 'std::char_traits' net/ns invalid operands to binary expression ('const TracedInt' and 'const TracedInt') textproc/wkhtmltopdf! declaration conflicts with target of using declaration already in scope 105 | inline bool isfinite(double x) { return finite(x); } www/ruby-passenger no member named 'swap' in namespace 'std' x11/blackbox implicit instantiation of undefined template 'std::char_traits' x11/kde-applications/cantor /usr/local/lib/R/include/Rinternals.h:1009:9: note: macro 'length' defined here 1009 | #define length(x) Rf_length(x) x11/ogre implicit instantiation of undefined template 'std::char_traits'