[MacPorts] #67980: qt6-qtbase @6.4.3_1: undefined symbols "std::__1::pmr::…" when LLVM clang used

MacPorts noreply at macports.org
Thu Aug 17 16:48:43 UTC 2023


#67980: qt6-qtbase @6.4.3_1: undefined symbols "std::__1::pmr::…" when LLVM clang
used
--------------------------+---------------------------------
 Reporter:  chrstphrchvz  |      Owner:  MarcusCalhoun-Lopez
     Type:  defect        |     Status:  assigned
 Priority:  Normal        |  Milestone:
Component:  ports         |    Version:  2.8.1
 Keywords:                |       Port:  qt6-qtbase
--------------------------+---------------------------------
 [https://build.macports.org/builders/ports-10.14_x86_64-builder/builds/176060/steps
 /install-port/logs/stdio]
 {{{
 [311/3727] : && /opt/local/bin/clang++-mp-16
 -I/opt/local/libexec/openssl3/include -DNDEBUG -Oz -arch x86_64 -isysroot
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-
 min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names
 -L/opt/local/libexec/openssl3/lib     -Wl,-dead_strip -fPIE -Xlinker -pie
 src/tools/tracegen/CMakeFiles/tracegen.dir/etw.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/helpers.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/lttng.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/panic.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/provider.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/qtheaders.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/tracegen.cpp.o -o
 libexec/tracegen  src/tools/bootstrap/libBootstrap.a  -framework
 Foundation  -framework CoreServices  /opt/local/lib/libpcre2-16.dylib && :
 FAILED: libexec/tracegen
 : && /opt/local/bin/clang++-mp-16 -I/opt/local/libexec/openssl3/include
 -DNDEBUG -Oz -arch x86_64 -isysroot
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-
 min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names
 -L/opt/local/libexec/openssl3/lib     -Wl,-dead_strip -fPIE -Xlinker -pie
 src/tools/tracegen/CMakeFiles/tracegen.dir/etw.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/helpers.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/lttng.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/panic.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/provider.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/qtheaders.cpp.o
 src/tools/tracegen/CMakeFiles/tracegen.dir/tracegen.cpp.o -o
 libexec/tracegen  src/tools/bootstrap/libBootstrap.a  -framework
 Foundation  -framework CoreServices  /opt/local/lib/libpcre2-16.dylib && :
 Undefined symbols for architecture x86_64:
   "std::__1::pmr::get_default_resource()", referenced from:
 std::__1::pmr::monotonic_buffer_resource::monotonic_buffer_resource[abi:v160006](void*,
 unsigned long) in libBootstrap.a(qstringlist.cpp.o)
   "vtable for std::__1::pmr::monotonic_buffer_resource", referenced from:
 std::__1::pmr::monotonic_buffer_resource::~monotonic_buffer_resource() in
 libBootstrap.a(qstringlist.cpp.o)
 std::__1::pmr::monotonic_buffer_resource::monotonic_buffer_resource[abi:v160006](void*,
 unsigned long) in libBootstrap.a(qstringlist.cpp.o)
   NOTE: a missing vtable usually means the first non-inline virtual member
 function has no definition.
   "std::__1::pmr::memory_resource::~memory_resource()", referenced from:
 std::__1::pmr::monotonic_buffer_resource::~monotonic_buffer_resource() in
 libBootstrap.a(qstringlist.cpp.o)
 ld: symbol(s) not found for architecture x86_64
 clang: error: linker command failed with exit code 1 (use -v to see
 invocation)
 }}}
 {{{
 [313/3727] : && /opt/local/bin/clang++-mp-16
 -I/opt/local/libexec/openssl3/include -DNDEBUG -Oz -arch x86_64 -isysroot
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-
 min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names
 -L/opt/local/libexec/openssl3/lib     -Wl,-dead_strip -fPIE -Xlinker -pie
 src/tools/moc/CMakeFiles/moc.dir/collectjson.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/generator.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/main.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/moc.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/parser.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/preprocessor.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/token.cpp.o -o libexec/moc
 src/tools/bootstrap/libBootstrap.a  -framework Foundation  -framework
 CoreServices  /opt/local/lib/libpcre2-16.dylib && :
 FAILED: libexec/moc
 : && /opt/local/bin/clang++-mp-16 -I/opt/local/libexec/openssl3/include
 -DNDEBUG -Oz -arch x86_64 -isysroot
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-
 min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names
 -L/opt/local/libexec/openssl3/lib     -Wl,-dead_strip -fPIE -Xlinker -pie
 src/tools/moc/CMakeFiles/moc.dir/collectjson.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/generator.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/main.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/moc.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/parser.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/preprocessor.cpp.o
 src/tools/moc/CMakeFiles/moc.dir/token.cpp.o -o libexec/moc
 src/tools/bootstrap/libBootstrap.a  -framework Foundation  -framework
 CoreServices  /opt/local/lib/libpcre2-16.dylib && :
 Undefined symbols for architecture x86_64:
   "std::__1::pmr::get_default_resource()", referenced from:
 std::__1::pmr::monotonic_buffer_resource::monotonic_buffer_resource[abi:v160006](void*,
 unsigned long) in moc.cpp.o
   "vtable for std::__1::pmr::monotonic_buffer_resource", referenced from:
 std::__1::pmr::monotonic_buffer_resource::~monotonic_buffer_resource() in
 moc.cpp.o
 std::__1::pmr::monotonic_buffer_resource::monotonic_buffer_resource[abi:v160006](void*,
 unsigned long) in moc.cpp.o
   NOTE: a missing vtable usually means the first non-inline virtual member
 function has no definition.
   "std::__1::pmr::memory_resource::~memory_resource()", referenced from:
 std::__1::pmr::monotonic_buffer_resource::~monotonic_buffer_resource() in
 moc.cpp.o
 ld: symbol(s) not found for architecture x86_64
 clang: error: linker command failed with exit code 1 (use -v to see
 invocation)
 }}}

 This is reproducible on macOS 12 using `configure.compiler=macports-
 clang-16`. I would guess that qtbase is incorrectly making assumptions
 about availability of `<memory_resource>` features in the libc++ runtime
 based on whether Xcode clang is used. (And it seems `<memory_resource>`
 will only available starting with macOS 14:
 [https://developer.apple.com/xcode/cpp/])

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


More information about the macports-tickets mailing list