#67587 closed defect (fixed)

qt5-qtbase 5.15.10 fails to link with missing _res_9_dn_expand symbol

Reported by: blair (Blair Zajac) Owned by: chrstphrchvz (Christopher Chavez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: chrstphrchvz (Christopher Chavez), rshuston
Port: qt5-qtbase

Description

On Ventura 13.4 with Xcode 14.3.1

make[2]: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/network'
rm -f QtNetwork QtNetwork.framework/QtNetwork ../../lib/QtNetwork.framework/QtNetwork
/Library/Developer/CommandLineTools/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names -fapplication-extension  -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=13.0 -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,@loader_path/Frameworks -single_module -dynamiclib -compatibility_version	5.15 -current_version	5.15.10 -install_name	/opt/local/libexec/qt5/lib/QtNetwork.framework/Versions/5/QtNetwork -o QtNetwork .obj/qnetworkaccessauthenticationmanager.o .obj/qnetworkaccessmanager.o .obj/qnetworkaccesscache.o .obj/qnetworkaccessbackend.o .obj/qnetworkaccessdebugpipebackend.o .obj/qnetworkaccessfilebackend.o .obj/qnetworkaccesscachebackend.o .obj/qnetworkcookie.o .obj/qnetworkcookiejar.o .obj/qnetworkrequest.o .obj/qnetworkreply.o .obj/qnetworkreplyimpl.o .obj/qnetworkreplydataimpl.o .obj/qnetworkreplyfileimpl.o .obj/qabstractnetworkcache.o .obj/qnetworkfile.o .obj/qhsts.o .obj/qhstspolicy.o .obj/qftp.o .obj/qnetworkaccessftpbackend.o .obj/qnetworkdiskcache.o .obj/qhstsstore.o .obj/bitstreams.o .obj/huffman.o .obj/hpack.o .obj/hpacktable.o .obj/http2frames.o .obj/http2streams.o .obj/http2protocol.o .obj/qabstractprotocolhandler.o .obj/qhttp2protocolhandler.o .obj/qhttpmultipart.o .obj/qhttpnetworkconnection.o .obj/qhttpnetworkconnectionchannel.o .obj/qhttpnetworkheader.o .obj/qhttpnetworkreply.o .obj/qhttpnetworkrequest.o .obj/qhttpprotocolhandler.o .obj/qhttpthreaddelegate.o .obj/qnetworkreplyhttpimpl.o .obj/qhttp2configuration.o .obj/qspdyprotocolhandler.o .obj/qnetworksession.o .obj/qnetworkconfigmanager.o .obj/qnetworkconfiguration.o .obj/qnetworkconfigmanager_p.o .obj/qbearerengine.o .obj/qbearerplugin.o .obj/qsharednetworksession.o .obj/qauthenticator.o .obj/qhostaddress.o .obj/qhostinfo.o .obj/qnetworkdatagram.o .obj/qnetworkinterface.o .obj/qnetworkproxy.o .obj/qurlinfo.o .obj/qdnslookup.o .obj/qdnslookup_unix.o .obj/qhostinfo_unix.o .obj/qnetworkinterface_unix.o .obj/qnetworkproxy_mac.o .obj/qabstractsocketengine.o .obj/qabstractsocket.o .obj/qtcpsocket.o .obj/qudpsocket.o .obj/qtcpserver.o .obj/qsocks5socketengine.o .obj/qhttpsocketengine.o .obj/qnativesocketengine.o .obj/qnativesocketengine_unix.o .obj/qlocalsocket.o .obj/qlocalserver.o .obj/qlocalsocket_unix.o .obj/qlocalserver_unix.o .obj/qasn1element.o .obj/qssl.o .obj/qsslcertificate.o .obj/qsslcertificateextension.o .obj/qsslconfiguration.o .obj/qsslcipher.o .obj/qssldiffiehellmanparameters.o .obj/qsslellipticcurve.o .obj/qsslkey_p.o .obj/qsslerror.o .obj/qsslsocket.o .obj/qsslpresharedkeyauthenticator.o .obj/qocspresponse.o .obj/qdtls.o .obj/qsslsocket_openssl_symbols.o .obj/qssldiffiehellmanparameters_openssl.o .obj/qsslcertificate_openssl.o .obj/qsslellipticcurve_openssl.o .obj/qsslkey_openssl.o .obj/qsslsocket_openssl.o .obj/qsslcontext_openssl.o .obj/qdtls_openssl.o .obj/qsslsocket_mac_shared.o .obj/qpassworddigestor.o .obj/qnetconmonitor_darwin.o .obj/moc_qnetworkaccesscache_p.o .obj/moc_qnetworkaccessbackend_p.o .obj/moc_qnetworkaccessdebugpipebackend_p.o .obj/moc_qnetworkaccessfilebackend_p.o .obj/moc_qnetworkcookiejar.o .obj/moc_qnetworkreply.o .obj/moc_qabstractnetworkcache.o .obj/moc_qnetworkfile_p.o .obj/moc_qnetworkaccessftpbackend_p.o .obj/moc_qnetworkdiskcache.o .obj/moc_qhttp2protocolhandler_p.o .obj/moc_qhttpmultipart.o .obj/moc_qhttpnetworkreply_p.o .obj/moc_qhttpthreaddelegate_p.o .obj/moc_qnetworkreplyhttpimpl_p.o .obj/moc_qspdyprotocolhandler_p.o .obj/moc_qnetworkconfigmanager_p.o .obj/moc_qnetworksession_p.o .obj/moc_qbearerplugin_p.o .obj/moc_qhostinfo_p.o .obj/moc_qnetconmonitor_p.o .obj/moc_qdnslookup_p.o .obj/moc_qabstractsocketengine_p.o .obj/moc_qtcpsocket.o .obj/moc_qudpsocket.o .obj/moc_qsocks5socketengine_p.o .obj/moc_qhttpsocketengine_p.o .obj/moc_qnativesocketengine_p.o .obj/moc_qdtls.o  -F/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/lib -framework QtCore -framework DiskArbitration -framework IOKit -framework Security -framework CoreFoundation -framework CoreServices -framework SystemConfiguration -lz -framework GSS -lssl -lcrypto   
make[2]: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/tools/qdbusxml2cpp'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/tools/qdbusxml2cpp'
make[2]: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/tools/qdbuscpp2xml'
make[2]: Nothing to be done for `first'.
make[2]: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/tools/qdbuscpp2xml'
ld: warning: linking against a dylib which is not safe for use in application extensions: /opt/local/lib/libz.dylib
ld: warning: linking against a dylib which is not safe for use in application extensions: /opt/local/lib/libssl.dylib
ld: warning: linking against a dylib which is not safe for use in application extensions: /opt/local/lib/libcrypto.dylib
Undefined symbols for architecture x86_64:
  "_res_9_dn_expand", referenced from:
      QDnsLookupRunnable::query(int, QByteArray const&, QHostAddress const&, QDnsLookupReply*) in qdnslookup_unix.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../lib/QtNetwork.framework/QtNetwork] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/network'

Change History (8)

comment:1 Changed 18 months ago by chrstphrchvz (Christopher Chavez)

I believe this was introduced by [f34f9bbfbfcd/macports-ports] and would be fixed by https://github.com/macports/macports-ports/pull/19004.

comment:2 Changed 18 months ago by chrstphrchvz (Christopher Chavez)

Cc: chrstphrchvz added

comment:3 Changed 18 months ago by khorton (Kevin Horton)

Same error seen on arch arm64 - Ventura 13.4 with Xcode 14.2:

:info:build /Library/Developer/CommandLineTools/usr/bin/clang++ -c -pipe -stdlib=libc++ -Oz -std=c++1z -fapplication-extension  -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=13.0 -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -Wextra -Winconsistent-missing-override -Wobjc-interface-ivars -Wobjc-method-access -Wobjc-multiple-method-names -Werror=unguarded-availability -Werror=unguarded-availability-new -Werror=unsupported-availability-guard -fPIC -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DMD4C_USE_UTF8 -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DGL_SILENCE_DEPRECATION -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../3rdparty/md4c -I../3rdparty/VulkanMemoryAllocator -I../../include -I../../include/QtGui -I../../include/QtGui/5.15.10 -I../../include/QtGui/5.15.10/QtGui -I.tracegen -I/System/Library/Frameworks/OpenGL.framework/Headers -I/System/Library/Frameworks/AGL.framework/Headers/ -I../../include/QtCore/5.15.10 -I../../include/QtCore/5.15.10/QtCore -I../../include/QtCore -I.moc -I/opt/local/include/libpng16 -I../../mkspecs/macx-clang -F/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/lib -o .obj/qpixmap_blitter.o image/qpixmap_blitter.cpp
:info:build Undefined symbols for architecture arm64:
:info:build   "_res_9_dn_expand", referenced from:
:info:build       QDnsLookupRunnable::query(int, QByteArray const&, QHostAddress const&, QDnsLookupReply*) in qdnslookup_unix.o
:info:build ld: symbol(s) not found for architecture arm64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make[2]: *** [../../lib/QtNetwork.framework/QtNetwork] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_aqua_qt5/qt5-qtbase/work/qtbase-everywhere-src-5.15.10/src/network'
:info:build make[1]: *** [sub-network-make_first] Error 2
:info:build make[1]: *** Waiting for unfinished jobs....

comment:4 Changed 18 months ago by blair (Blair Zajac)

Version 0, edited 18 months ago by blair (Blair Zajac) (next)

comment:5 Changed 18 months ago by chrstphrchvz (Christopher Chavez)

https://github.com/macports/macports-ports/commit/ae2650ecbb249d691d6420055846c7169c928a03#commitcomment-116942105

The intent of [f34f9bbfbfcd/macports-ports] was to fix line endings, but it also changed an instance of local_dn_expand() to dn_expand() which I believe causes the linking error. There is no linking error if only the line endings are fixed, as done by https://github.com/macports/macports-ports/pull/19004.

comment:6 Changed 18 months ago by rshuston

Cc: rshuston added

comment:7 Changed 18 months ago by blair (Blair Zajac)

In db3244542ca3ec3638a704e13951c5bf37ad4498/macports-ports (master):

qt5: add upstream URL to CVE-2023-33285 patch

Resolves: #67587

comment:8 Changed 17 months ago by Schamschula (Marius Schamschula)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.