From: Rafael Sadowski Subject: Re: libc++ 19.1.7 ports fallout To: Theo Buehler Cc: ports@openbsd.org Date: Wed, 25 Jun 2025 21:13:01 +0200 On Mon Jun 23, 2025 at 07:27:54AM +0200, Theo Buehler wrote: > 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. Thanks for the list, I think it makes it easier to update all the old horrible ones when possible and fix the rest by hand. I'll be happy to do that next time. > > > 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' >