Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing libneon.a in 0.8.1 #93

Open
Axel-Naumann opened this issue Mar 30, 2022 · 4 comments
Open

Missing libneon.a in 0.8.1 #93

Axel-Naumann opened this issue Mar 30, 2022 · 4 comments

Comments

@Axel-Naumann
Copy link

Hi,

Are we (ROOT) configuring / building davix incorrectly? We get

15:18:07  [7702/10606] Linking CXX shared library lib/libRDAVIX.so.6.27.01
15:18:07  FAILED: : && /usr/bin/c++ -fPIC -fdiagnostics-color=always -std=c++14 -pipe  -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3  -Wl,--no-undefined -Wl,--hash-style="both" -shared -Wl,-soname,libRDAVIX.so.6.27 -o lib/libRDAVIX.so.6.27.01 net/davix/CMakeFiles/G__RDAVIX.dir/G__RDAVIX.cxx.o net/davix/CMakeFiles/RDAVIX.dir/src/RRawFileDavix.cxx.o net/davix/CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o net/davix/CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o  -Wl,-rpath,/mnt/build/workspace/root-pullrequests-build/build/lib:  lib/libNet.so.6.27.01  lib/libRIO.so.6.27.01  builtins/davix/DAVIX-prefix/lib/libdavix.a  builtins/davix/DAVIX-prefix/lib/libneon.a  -luuid  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libxml2.so  -ldl  lib/libThread.so.6.27.01  lib/libCore.so.6.27.01  -lpthread && :
15:18:07  c++: error: builtins/davix/DAVIX-prefix/lib/libneon.a: No such file or directory

That's coming from https://github.com/root-project/root/blob/master/builtins/davix/CMakeLists.txt#L19-L22

foreach(lib davix neon)
  set(libname ${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
  list(APPEND DAVIX_LIBRARIES ${DAVIX_PREFIX}/lib/${libname})
endforeach()

Does Davix export CMake targets (Davix::Davix or similar) these days? I didn't find those.

IIUC, https://github.com/cern-fts/davix/blob/devel/src/CMakeLists.txt#L150 is relevant here and it "includes" curl, so we don't even need to link against neon anymore?

Thanks for any insights :-)

Axel

Axel-Naumann added a commit to Axel-Naumann/root that referenced this issue Mar 30, 2022
Fixes macOS 12 builds.
neon is gone, and curl is already part of davix.a (cern-fts/davix#93).
@Axel-Naumann
Copy link
Author

...and just not linking against neon isn't a solution either:

16:10:46  builtins/davix/DAVIX-prefix/lib/libdavix.a(davixcontext.cpp.o): In function `Davix::backendRuntimeVersion[abi:cxx11]()':
16:10:46  davixcontext.cpp:(.text+0x5d2): undefined reference to `curl_version_info'
16:10:46  builtins/davix/DAVIX-prefix/lib/libdavix.a(CurlSessionFactory.cpp.o): In function `Davix::CurlSessionFactory::makeNewHandle(Davix::Uri const&, Davix::RequestParams const&)':
16:10:46  CurlSessionFactory.cpp:(.text+0x1de): undefined reference to `curl_easy_init'
16:10:46  CurlSessionFactory.cpp:(.text+0x1e6): undefined reference to `curl_multi_init'

Looks like the curl linking shouldn't be that PRIVATE?

@mpatrascoiu mpatrascoiu changed the title Missing libneo.a in 0.8.1 Missing libneon.a in 0.8.1 Mar 30, 2022
@mpatrascoiu
Copy link
Contributor

Hello Axel,

I'm not aware of Davix exporting any CMake targets.

I'll have a look at the issue tomorrow.

@Axel-Naumann
Copy link
Author

Any news on this? It blocks our release, I'd very much appreciate some input here. Happy to discuss by videoconf or phone if that reduces latency!

@Axel-Naumann
Copy link
Author

Axel-Naumann commented Apr 5, 2022

Thanks a lot for your help today!

I'll just add this here because it's along the same lines:

FAILED: lib/libRDAVIX.6.27.01.so 
18:57:54  : && /Library/Developer/CommandLineTools/usr/bin/c++ -std=c++17 -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -m64 -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -Qunused-arguments -pthread -stdlib=libc++ -O3 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk -dynamiclib -Wl,-headerpad_max_install_names -m64 -single_module -Wl,-dead_strip_dylibs -compatibility_version 6.27.0 -current_version 6.27.1 -o lib/libRDAVIX.6.27.01.so -install_name @rpath/libRDAVIX.6.27.so net/davix/CMakeFiles/G__RDAVIX.dir/G__RDAVIX.cxx.o net/davix/CMakeFiles/RDAVIX.dir/src/RRawFileDavix.cxx.o net/davix/CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o net/davix/CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o  -Wl,-rpath,/Users/sftnight/build/workspace/root-pullrequests-build/build/lib  lib/libNet.6.27.01.so  lib/libRIO.6.27.01.so  builtins/davix/DAVIX-prefix/lib/libdavix.a  builtins/davix/DAVIX-prefix/src/DAVIX-build/deps/curl-install/usr/lib/libcurl.a  builtins/openssl/OPENSSL-prefix/lib/libssl.a  builtins/openssl/OPENSSL-prefix/lib/libcrypto.a  /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libz.tbd  /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libxml2.tbd  lib/libThread.6.27.01.so  lib/libCore.6.27.01.so && :
18:57:54  Undefined symbols for architecture x86_64:
18:57:54    "_CFArrayAppendValue", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _append_cert_to_array in libcurl.a(sectransp.c.o)
18:57:54    "_CFArrayCreate", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_CFArrayCreateMutable", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54    "_CFArrayGetCount", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_CFArrayGetValueAtIndex", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_CFDataCreate", referenced from:
18:57:54        _append_cert_to_array in libcurl.a(sectransp.c.o)
18:57:54    "_CFDataGetBytePtr", referenced from:
18:57:54        _pkp_pin_peer_pubkey in libcurl.a(sectransp.c.o)
18:57:54    "_CFDataGetLength", referenced from:
18:57:54        _pkp_pin_peer_pubkey in libcurl.a(sectransp.c.o)
18:57:54    "_CFDictionaryCreate", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_CFDictionaryGetTypeID", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_CFDictionaryGetValue", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_CFGetTypeID", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_CFRelease", referenced from:
18:57:54        _Curl_sectransp_close in libcurl.a(sectransp.c.o)
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54        _CopyCertSubject in libcurl.a(sectransp.c.o)
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54        ...
18:57:54    "_CFRetain", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_CFStringCompare", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_CFStringCreateWithCString", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_CFStringGetCString", referenced from:
18:57:54        _CopyCertSubject in libcurl.a(sectransp.c.o)
18:57:54    "_CFStringGetCStringPtr", referenced from:
18:57:54        _CopyCertSubject in libcurl.a(sectransp.c.o)
18:57:54    "_CFStringGetLength", referenced from:
18:57:54        _CopyCertSubject in libcurl.a(sectransp.c.o)
18:57:54    "_CFURLCreateDataAndPropertiesFromResource", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_CFURLCreateFromFileSystemRepresentation", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_SSLClose", referenced from:
18:57:54        _Curl_sectransp_close in libcurl.a(sectransp.c.o)
18:57:54    "_SSLCopyALPNProtocols", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLCopyPeerTrust", referenced from:
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54        _pkp_pin_peer_pubkey in libcurl.a(sectransp.c.o)
18:57:54        _show_verbose_server_cert in libcurl.a(sectransp.c.o)
18:57:54    "_SSLCreateContext", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLGetBufferedReadSize", referenced from:
18:57:54        _Curl_sectransp_data_pending in libcurl.a(sectransp.c.o)
18:57:54    "_SSLGetNegotiatedCipher", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLGetNegotiatedProtocolVersion", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLGetNumberSupportedCiphers", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLGetSessionState", referenced from:
18:57:54        _Curl_sectransp_check_cxn in libcurl.a(sectransp.c.o)
18:57:54    "_SSLGetSupportedCiphers", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLHandshake", referenced from:
18:57:54        _sectransp_connect_step2 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLRead", referenced from:
18:57:54        _sectransp_recv in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetALPNProtocols", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetCertificate", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetConnection", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetEnabledCiphers", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetIOFuncs", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetPeerDomainName", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetPeerID", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetProtocolVersionMax", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _set_ssl_version_min_max in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetProtocolVersionMin", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _set_ssl_version_min_max in libcurl.a(sectransp.c.o)
18:57:54    "_SSLSetSessionOption", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54    "_SSLWrite", referenced from:
18:57:54        _sectransp_send in libcurl.a(sectransp.c.o)
18:57:54    "_SecCertificateCopyCommonName", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_SecCertificateCopyLongDescription", referenced from:
18:57:54        _CopyCertSubject in libcurl.a(sectransp.c.o)
18:57:54    "_SecCertificateCreateWithData", referenced from:
18:57:54        _append_cert_to_array in libcurl.a(sectransp.c.o)
18:57:54    "_SecCertificateGetTypeID", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_SecIdentityCopyCertificate", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_SecIdentityCreateWithCertificate", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_SecItemCopyMatching", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_SecItemImport", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_SecKeyCopyExternalRepresentation", referenced from:
18:57:54        _pkp_pin_peer_pubkey in libcurl.a(sectransp.c.o)
18:57:54    "_SecPolicyCreateSSL", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_SecTrustCopyPublicKey", referenced from:
18:57:54        _pkp_pin_peer_pubkey in libcurl.a(sectransp.c.o)
18:57:54    "_SecTrustEvaluate", referenced from:
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54    "_SecTrustGetCertificateAtIndex", referenced from:
18:57:54        _show_verbose_server_cert in libcurl.a(sectransp.c.o)
18:57:54    "_SecTrustGetCertificateCount", referenced from:
18:57:54        _show_verbose_server_cert in libcurl.a(sectransp.c.o)
18:57:54    "_SecTrustSetAnchorCertificates", referenced from:
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54    "_SecTrustSetAnchorCertificatesOnly", referenced from:
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54    "___CFConstantStringClassReference", referenced from:
18:57:54        CFString in libcurl.a(sectransp.c.o)
18:57:54        CFString in libcurl.a(sectransp.c.o)
18:57:54    "_kCFAllocatorDefault", referenced from:
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54        _append_cert_to_array in libcurl.a(sectransp.c.o)
18:57:54    "_kCFBooleanTrue", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kCFCopyStringDictionaryKeyCallBacks", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kCFTypeArrayCallBacks", referenced from:
18:57:54        _sectransp_connect_step1 in libcurl.a(sectransp.c.o)
18:57:54        _verify_cert in libcurl.a(sectransp.c.o)
18:57:54    "_kCFTypeDictionaryValueCallBacks", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecAttrLabel", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecClass", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecClassIdentity", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecImportItemIdentity", referenced from:
18:57:54        _CopyIdentityFromPKCS12File in libcurl.a(sectransp.c.o)
18:57:54    "_kSecMatchLimit", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecMatchLimitAll", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecMatchPolicy", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54    "_kSecReturnRef", referenced from:
18:57:54        _CopyIdentityWithLabel in libcurl.a(sectransp.c.o)
18:57:54  ld: symbol(s) not found for architecture x86_64
18:57:54  clang: error: linker command failed with exit code 1 (use -v to see invocation)

That's macOS11. I'll post an update once I figured out how to tell CMake to link against the Security framework; for now I just wanted to share yet another good reason for a Davix::Davix target :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants