Skip site navigation (1)Skip section navigation (2)
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>