Date: Fri, 22 Feb 2019 16:09:09 +0100 From: Willem Jan Withagen <wjw@digiware.nl> To: FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, Ed Maste <emaste@freebsd.org> Subject: Linking problem with lld Message-ID: <71079fbc-c3c0-9b93-0ae4-8ceda5d1f751@digiware.nl>
next in thread | raw e-mail | index | archive | help
Hi Ed ea, In het ceph project, they started to use library versioning, so it seems. But compiling/linking that now with Clang and lld I run into trouble building the ceph-tools. This is what I get back of one of the Devs: -------------- My guess is that your linker doesn't support the new symbol versioning exports and since the symbols are hidden by default they aren't visible in the shared library. Previously there was a bug (since Luminous and the switch the cmake) where every public and private symbol was exported by librados. We just need to know the magic words to use for your compiler/linker to change the symbol visibility to public for the API methods. -------------- Now I looked thru the options on both Clang and lld, but nothing obviously springs into focus, as to add to change.... This is how librados is build: /usr/bin/c++ -fPIC -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -Wno-unknown-pragmas -Wno-unused-function -Wno-unused-local-typedef -Wno-varargs -Wno-gnu-designator -Wno-missing-braces -Wno-parentheses -Wno-deprecated-register -ftemplate-depth-1024 -Wnon-virtual-dtor -Wno-unknown-pragmas -Wno-ignored-qualifiers -Wno-inconsistent-missing-override -Wno-mismatched-tags -Wno-unused-private-field -Wno-address-of-packed-member -DCEPH_DEBUG_MUTEX -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -O0 -g -Wno-unused-command-line-argument -fuse-ld=/usr/bin/ld.lld -Wl,--exclude-libs,ALL -Wl,--version-script=/home/jenkins/workspace/ceph-master/src/librados/librados.map -shared -Wl,-soname,librados.so.2 -o ../../lib/librados.so.2.0.0 CMakeFiles/librados.dir/librados_c.cc.o CMakeFiles/librados.dir/librados_cxx.cc.o ../common/CMakeFiles/common_buffer_obj.dir/buffer.cc.o -L/usr/local/lib -Wl,-rpath,/usr/local/lib:/home/jenkins/workspace/ceph-master/build/lib:/usr/local/lib/nss: ../../lib/liblibrados_impl.a ../../lib/libosdc.a ../../lib/libceph-common.so.0 ../../lib/libcls_lock_client.a /usr/local/lib/nss/libssl3.so /usr/local/lib/nss/libsmime3.so /usr/local/lib/nss/libnss3.so /usr/local/lib/nss/libnssutil3.so /usr/local/lib/libplds4.so /usr/local/lib/libplc4.so /usr/local/lib/libnspr4.so /usr/local/lib/libcrypto.so -lrt ../../lib/libjson_spirit.a ../../lib/libcommon_utf8.a ../../lib/liberasure_code.a ../../lib/libcrc32.a ../../lib/libarch.a /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_atomic.so /usr/local/lib/libboost_random.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_program_options.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_iostreams.so /usr/local/lib/libboost_regex.so /usr/lib/libexecinfo.so /usr/local/lib/nss/libssl3.so /usr/local/lib/nss/libsmime3.so /usr/local/lib/nss/libnss3.so /usr/local/lib/nss/libnssutil3.so /usr/local/lib/libplds4.so /usr/local/lib/libplc4.so /usr/local/lib/libnspr4.so -lpthread Any suggestions on getting the hidden symbols to reapear is greatly appriciated. --WjW
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?71079fbc-c3c0-9b93-0ae4-8ceda5d1f751>