[MacPorts] #71090: Kicad @7.0.11: fails to build with clang-19 and libc++ 19, after upgrade to macos 15
MacPorts
noreply at macports.org
Sat Oct 12 22:24:22 UTC 2024
#71090: Kicad @7.0.11: fails to build with clang-19 and libc++ 19, after upgrade
to macos 15
---------------------+--------------------------------------
Reporter: mpbb77 | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.10.2
Resolution: | Keywords: kicad clang-19 libc++ 19
Port: kicad |
---------------------+--------------------------------------
Description changed by mpbb77:
Old description:
> Building Kicad will fail while building thirdparty/nanodbc due to
> deprecation of std::char_traits<> for types other than char, char8_t,
> char16_t, char32_t and wchar_t, wioth errors similar to:
> .../thirdparty/nanodbc/nanodbc/nanodbc.cpp:261:25: error: implicit
> instantiation of undefined template 'std::char_traits<unsigned short>'
> 261 | auto const n =
> std::char_traits<NANODBC_SQLCHAR>::length(array);
> | ^
> /usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
> declared here
> 45 | struct char_traits;
> | ^
> .../thirdparty/nanodbc/nanodbc/nanodbc.cpp:3576:52: error: implicit
> instantiation of undefined template 'std::char_traits<unsigned short>'
> 3576 | dsn.name = string(&name[0],
> &name[std::char_traits<NANODBC_SQLCHAR>::length(name)]);
> | ^
> /usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
> declared here
> 45 | struct char_traits;
> | ^
> .../thirdparty/nanodbc/nanodbc/nanodbc.cpp:3578:49: error: implicit
> instantiation of undefined template 'std::char_traits<unsigned short>'
> 3578 | string(&driver[0],
> &driver[std::char_traits<NANODBC_SQLCHAR>::length(driver)]);
> | ^
> /usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
> declared here
> 45 | struct char_traits;
> | ^
> .../thirdparty/nanodbc/nanodbc/nanodbc.cpp:3629:54: error: implicit
> instantiation of undefined template 'std::char_traits<unsigned short>'
> 3629 | drv.name = string(&descr[0],
> &descr[std::char_traits<NANODBC_SQLCHAR>::length(descr)]);
> | ^
> /usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
> declared here
> 45 | struct char_traits;
> | ^
>
> and
>
> /usr/include/c++/v1/string:820:42: error: implicit instantiation of
> undefined template 'std::char_traits<unsigned short>'
> 820 | static_assert(is_same<_CharT, typename
> traits_type::char_type>::value,
> | ^
> .../thirdparty/compoundfilereader/compoundfilereader.h:226:21: note: in
> instantiation of template class 'std::basic_string<unsigned short>'
> requested here
> 226 | utf16string dir;
> | ^
> /usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared
> here
> 23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
> |
>
> The same failure can be found on the freebsd bugzilla @
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281886 and
> their fix also applies to Macports, as I've applied their patches and the
> build resumed with no further issues.
New description:
Building Kicad will fail while building thirdparty/nanodbc due to
deprecation of std::char_traits<> for types other than char, char8_t,
char16_t, char32_t and wchar_t, with errors like:
.../thirdparty/nanodbc/nanodbc/nanodbc.cpp:261:25: error: implicit
instantiation of undefined template 'std::char_traits<unsigned short>'
261 | auto const n =
std::char_traits<NANODBC_SQLCHAR>::length(array);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
declared here
45 | struct char_traits;
| ^
.../thirdparty/nanodbc/nanodbc/nanodbc.cpp:3576:52: error: implicit
instantiation of undefined template 'std::char_traits<unsigned short>'
3576 | dsn.name = string(&name[0],
&name[std::char_traits<NANODBC_SQLCHAR>::length(name)]);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
declared here
45 | struct char_traits;
| ^
.../thirdparty/nanodbc/nanodbc/nanodbc.cpp:3578:49: error: implicit
instantiation of undefined template 'std::char_traits<unsigned short>'
3578 | string(&driver[0],
&driver[std::char_traits<NANODBC_SQLCHAR>::length(driver)]);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
declared here
45 | struct char_traits;
| ^
.../thirdparty/nanodbc/nanodbc/nanodbc.cpp:3629:54: error: implicit
instantiation of undefined template 'std::char_traits<unsigned short>'
3629 | drv.name = string(&descr[0],
&descr[std::char_traits<NANODBC_SQLCHAR>::length(descr)]);
| ^
/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is
declared here
45 | struct char_traits;
| ^
and
/usr/include/c++/v1/string:820:42: error: implicit instantiation of
undefined template 'std::char_traits<unsigned short>'
820 | static_assert(is_same<_CharT, typename
traits_type::char_type>::value,
| ^
.../thirdparty/compoundfilereader/compoundfilereader.h:226:21: note: in
instantiation of template class 'std::basic_string<unsigned short>'
requested here
226 | utf16string dir;
| ^
/usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared
here
23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
|
The same failure can be found on the freebsd bugzilla @
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281886 and
their fix also applies to Macports, as I've applied their patches and the
build resumed with no further issues.
--
--
Ticket URL: <https://trac.macports.org/ticket/71090#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list