Clang (libc++-19): implicit instantiation of undefined template 'std::char_traits<unsigned char>'
OS: Gentoo Linux amd64 musl llvm
clang version 19.0.0git597f9761+libcxx
Target: x86_64-gentoo-linux-musl
Thread model: posix
InstalledDir: /usr/lib/llvm/19/bin
Configuration file: /etc/clang/x86_64-gentoo-linux-musl-clang.cfg
glibmm-2.78.1 fails to compile (-stdlib=libc++) with the following error:
[215/220] clang++ -Igio/giomm/libgiomm-2.68.so.1.3.0.p -Igio -I../glibmm-2.78.1/gio -I../glibmm-2.78.1/untracked/gio -Iglib -I../glibmm-2.78.1/glib -I../glibmm-2.78.1/untracked/glib -I/usr/include/sigc++-3.0 -I/usr/lib/sigc++-3.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -flto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++17 -O3 -pipe -march=native -mtune=native -D_FORTIFY_SOURCE=3 -g0 -D_LARGEFILE64_SOURCE -Werror=odr -Werror=conditional-type-mismatch -Werror=pointer-type-mismatch -Werror=selector-type-mismatch -Werror=strict-aliasing -fPIC -stdlib=libc++ -fPIC -pthread -DGIOMM_BUILD=1 -MD -MQ gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o -MF gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o.d -o gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o -c ../glibmm-2.78.1/gio/giomm/contenttype.cc
FAILED: gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o
clang++ -Igio/giomm/libgiomm-2.68.so.1.3.0.p -Igio -I../glibmm-2.78.1/gio -I../glibmm-2.78.1/untracked/gio -Iglib -I../glibmm-2.78.1/glib -I../glibmm-2.78.1/untracked/glib -I/usr/include/sigc++-3.0 -I/usr/lib/sigc++-3.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -flto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++17 -O3 -pipe -march=native -mtune=native -D_FORTIFY_SOURCE=3 -g0 -D_LARGEFILE64_SOURCE -Werror=odr -Werror=conditional-type-mismatch -Werror=pointer-type-mismatch -Werror=selector-type-mismatch -Werror=strict-aliasing -fPIC -stdlib=libc++ -fPIC -pthread -DGIOMM_BUILD=1 -MD -MQ gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o -MF gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o.d -o gio/giomm/libgiomm-2.68.so.1.3.0.p/contenttype.cc.o -c ../glibmm-2.78.1/gio/giomm/contenttype.cc
In file included from ../glibmm-2.78.1/gio/giomm/contenttype.cc:17:
In file included from ../glibmm-2.78.1/gio/giomm/contenttype.h:19:
In file included from ../glibmm-2.78.1/glib/glibmm/ustring.h:29:
In file included from /usr/include/c++/v1/sstream:320:
In file included from /usr/include/c++/v1/istream:169:
In file included from /usr/include/c++/v1/bitset:147:
/usr/include/c++/v1/string:746:43: error: implicit instantiation of undefined template 'std::char_traits<unsigned char>'
746 | static_assert((is_same<_CharT, typename traits_type::char_type>::value),
| ^
../glibmm-2.78.1/gio/giomm/contenttype.cc:93:57: note: in instantiation of template class 'std::basic_string<unsigned char>' requested here
93 | gchar* cresult = g_content_type_guess(c_filename, data.c_str(), data.size(), &c_result_uncertain);
| ^
/usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared here
23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
| ^
1 error generated.