On 22-2-2019 22:34, Tijl Coosemans wrote:
On Fri, 22 Feb 2019 16:09:09 +0100 Willem Jan Withagen <w...@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

_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to