[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:16:19 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
 Keywords:  kicad clang-19 libc++ 19  |       Port:  kicad
--------------------------------------+--------------------
 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.

-- 
Ticket URL: <https://trac.macports.org/ticket/71090>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list