Date: Fri, 22 Feb 2019 23:47:00 +0100 From: Willem Jan Withagen <wjw@digiware.nl> To: =?UTF-8?Q?T=c4=b3l_Coosemans?= <tijl@FreeBSD.org> Cc: FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, Ed Maste <emaste@freebsd.org> Subject: Re: Linking problem with lld Message-ID: <29a75c78-f2df-e80b-d013-631584e0fc71@digiware.nl> In-Reply-To: <20190222223456.5d7840b7@kalimero.tijl.coosemans.org> References: <71079fbc-c3c0-9b93-0ae4-8ceda5d1f751@digiware.nl> <20190222223456.5d7840b7@kalimero.tijl.coosemans.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 22-2-2019 22:34, Tijl Coosemans wrote: > On Fri, 22 Feb 2019 16:09:09 +0100 Willem Jan Withagen <wjw@digiware.nl> > wrote: >> 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 > Can you provide this librados.map file? https://github.com/ceph/ceph/blob/master/src/librados/librados.map: ------ LIBRADOS_PRIVATE { local: *; }; LIBRADOS_14.2.0 { global: extern "C++" { ceph::buffer::v14_2_0::*; librados::v14_2_0::*; "typeinfo for librados::v14_2_0::ObjectOperation"; "typeinfo name for librados::v14_2_0::ObjectOperation"; "vtable for librados::v14_2_0::ObjectOperation"; "typeinfo for librados::v14_2_0::ObjectReadOperation"; "typeinfo name for librados::v14_2_0::ObjectReadOperation"; "vtable for librados::v14_2_0::ObjectReadOperation"; "typeinfo for librados::v14_2_0::ObjectWriteOperation"; "typeinfo name for librados::v14_2_0::ObjectWriteOperation"; "vtable for librados::v14_2_0::ObjectWriteOperation"; "typeinfo for librados::v14_2_0::WatchCtx"; "typeinfo name for librados::v14_2_0::WatchCtx"; "vtable for librados::v14_2_0::WatchCtx"; "typeinfo for librados::v14_2_0::WatchCtx2"; "typeinfo name for librados::v14_2_0::WatchCtx2"; "vtable for librados::v14_2_0::WatchCtx2"; }; } LIBRADOS_PRIVATE; ------ --WjW
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?29a75c78-f2df-e80b-d013-631584e0fc71>