Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
libc++ 19.1.7 ports fallout
To:
ports@openbsd.org
Date:
Mon, 23 Jun 2025 07:27:54 +0200

Download raw body.

Thread
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<unsigned short>'

databases/libpqxx:
implicit instantiation of undefined template 'std::char_traits<unsigned char>'

databases/mongodb/44!
implicit instantiation of undefined template 'std::char_traits<fmt::char8_t>'

devel/cbmc
implicit instantiation of undefined template 'std::char_traits<unsigned int>'

devel/mygui
implicit instantiation of undefined template 'std::char_traits<unsigned short>'

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<unsigned int>'

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<unsigned short>'

games/endless-sky!
reference to 'queue' is ambiguous

games/openrct2
implicit instantiation of undefined template 'std::char_traits<unsigned char>'

games/recoil-rts
fatal error: 'experimental/memory_resource' file not found

games/scorched3d
implicit instantiation of undefined template 'std::char_traits<unsigned int>'

games/xye
reference to 'lock' is ambiguous

graphics/mapnik
implicit instantiation of undefined template 'std::char_traits<int>'

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<unsigned char>'

inputmethods/fcitx-hangul
implicit instantiation of undefined template 'std::char_traits<unsigned int>'

lang/apl
implicit instantiation of undefined template 'std::char_traits<unsigned char>'

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<unsigned int>'

net/kea,mysql
implicit instantiation of undefined template 'std::char_traits<unsigned char>'

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<unsigned int>'

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<unsigned short>'