Opened 6 hours ago

Last modified 6 hours ago

#71090 new defect

Kicad @7.0.11: fails to build with clang-19 and libc++ 19, after upgrade to macos 15 — at Initial Version

Reported by: mpbb77 (Miguel Branco) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.10.2
Keywords: kicad clang-19 libc++ 19 Cc:
Port: kicad

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

/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/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;

|

/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/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;

|

/wrkdirs/usr/ports/cad/kicad/work/kicad-7.0.2/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;

|

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.

Change History (1)

Changed 6 hours ago by mpbb77 (Miguel Branco)

Attachment: attachment.html added

Patches from FreeBsd Bugzilla readily applicable to this port

Note: See TracTickets for help on using tickets.