Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Feb 2019 22:25:27 +0100
From:      Willem Jan Withagen <wjw@digiware.nl>
To:        Ed Maste <emaste@freebsd.org>
Cc:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   Re: Linking problem with lld
Message-ID:  <65b98b4e-9239-2449-b39c-b0720ad4a0f2@digiware.nl>
In-Reply-To: <CAPyFy2CrCyqAESgNP6WFaVEjvJt0OjD%2BbzygUn5hpAqJ0usJYw@mail.gmail.com>
References:  <71079fbc-c3c0-9b93-0ae4-8ceda5d1f751@digiware.nl> <CAPyFy2CrCyqAESgNP6WFaVEjvJt0OjD%2BbzygUn5hpAqJ0usJYw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 22-2-2019 21:09, Ed Maste wrote:
> On Fri, 22 Feb 2019 at 10:09, Willem Jan Withagen <wjw@digiware.nl> wrote:
>> 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.
> lld is largely compatible with GNU ld / gold on the command-line and
> in linker scripts and version scripts. Can you provide the error you
> see or an example of one of the symbols with incorrect visibility?

It could very be that the way versioning is introduced in the project is
not compatible with Clang, since the general compiler used is GCC.

I was afraid that that was going to be the counter question?? 8-(
This occurs while building Ceph, which is a "rather" large package
with a lot of include subpackages... and some local patches for things
that have not been send upstream.

But lets start with the error reported:

ld.lld: error: undefined symbol: rados_aio_get_return_value
referenced by cls_journal_client.cc:29 
(/home/jenkins/workspace/ceph-master/src/cls/journal/cls_journal_client.cc:29)
cls_journal_client.cc.o:(cls::journal::client::(anonymous 
namespace)::C_AioExec::rados_callback(void*, void*)) in archive 
../../../lib/libcls_journal_client.a
c++: error: linker command failed with exit code 1 (use -v to see 
invocation)
gmake[2]: *** 
[src/test/cls_journal/CMakeFiles/ceph_test_cls_journal.dir/build.make:129: 
bin/ceph_test_cls_journal] Error 1
gmake[2]: Leaving directory '/home/jenkins/workspace/ceph-master/build'
gmake[1]: *** [CMakeFiles/Makefile2:11020: 
src/test/cls_journal/CMakeFiles/ceph_test_cls_journal.dir/all] Error 2

===========

Not sure what you can make of this.

--WjW



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?65b98b4e-9239-2449-b39c-b0720ad4a0f2>