msgpack/msgpack-d

Missing symbol while building msgpack-d library

Closed this issue · 1 comments

Dear,

I used meson 0.52 to build msgpack-d-1.0.1 and DCD fail to build as it do not found some symbol

As example the first error message is:

 bin/dcd-server.o:main.d:function _D3dcd6server4main9runServerFAAyaZi: error: undefined reference to '_D7msgpack8unpacker8Unpacker6__ctorMFNcxAhxmbZSQBtQBoQBi'

but _D7msgpack8unpacker8Unpacker6__ctorMFNcxAhxmbZSQBtQBoQBi is present

Indeed if I look symbol into the library, symbols are :

$  nm -gC libmsgpack-d.so.1.0.0 | grep unpacker8Unpacker
0000000000030ae0 T _D7msgpack8unpacker8Unpacker10beginArrayMFNfZm
0000000000031570 T _D7msgpack8unpacker8Unpacker11__xopEqualsFKxSQBrQBmQBgKxQmZb
0000000000000008 B _D7msgpack8unpacker8Unpacker14unpackHandlersHC8TypeInfoDFKSQCfQCaQBuPvZv
0000000000030d10 T _D7msgpack8unpacker8Unpacker4readMFNbNfxmZAh
0000000000030cd0 T _D7msgpack8unpacker8Unpacker4readMFNbNfZh
0000000000030ad0 T _D7msgpack8unpacker8Unpacker5clearMFNbNfZv
0000000000030a70 T _D7msgpack8unpacker8Unpacker6__ctorMFNcxAhxmbZSQBtQBoQBi
0000000000030c40 T _D7msgpack8unpacker8Unpacker7canReadMFNfxmxmZv
0000000000030d70 T _D7msgpack8unpacker8Unpacker8beginMapMFNfZm
00000000000312e0 T _D7msgpack8unpacker8Unpacker8checkNilMFNfZb
0000000000030d50 T _D7msgpack8unpacker8Unpacker8rollbackMFNfxmxAyaxEQBv6common6FormatZv
00000000000312a0 T _D7msgpack8unpacker8Unpacker8rollbackMFNfxmxAyaZv
0000000000030a00 T _D7msgpack8unpacker8Unpacker9__mixin2410parsedSizeMxFNbNdNfZm
00000000000309b0 T _D7msgpack8unpacker8Unpacker9__mixin2412unparsedSizeMxFNbNdNfZm
00000000000309c0 T _D7msgpack8unpacker8Unpacker9__mixin2414bufferConsumedMFNbNfxmZv
00000000000309e0 T _D7msgpack8unpacker8Unpacker9__mixin2414removeUnparsedMFNbNfZv
0000000000030a10 T _D7msgpack8unpacker8Unpacker9__mixin2416initializeBufferMFNbNfxAhxmZv
0000000000030790 T _D7msgpack8unpacker8Unpacker9__mixin244feedMFNfxAhZ12expandBufferMFNbNfxmZv
0000000000030700 T _D7msgpack8unpacker8Unpacker9__mixin244feedMFNfxAhZv
00000000000309f0 T _D7msgpack8unpacker8Unpacker9__mixin244sizeMxFNbNdNfZm
00000000000306f0 T _D7msgpack8unpacker8Unpacker9__mixin246bufferMFNbNdNfZAh
0000000000030ed0 T _D7msgpack8unpacker8Unpacker9unpackExtMFNcNjKgKAhZSQBxQBsQBm
00000000000314c0 T _D7msgpack8unpacker8Unpacker9__xtoHashFNbNeKxSQBsQBnQBhZm

Thanks for your help

Additional information:

mspack-d build

    meson --prefix "${PREFIX}" --buildtype=plain build-msgpack
    sed  -i 's/-L-soname,libmsgpack-d.so.1/-shared -soname libstdx-allocator.so.0/g' build-msgpack/build.ninja
    ninja -v -C build-msgpack
    DESTDIR="${DESTDIR}" ninja -C build-msgpack install

meson.build:

this file should be updated to match the current version 1.0.1 here

the error come from the sed
here the right things to do:

    meson --prefix "${PREFIX}" --buildtype=plain build-msgpack
    sed  -i 's/-L-soname,libmsgpack-d.so.1/-shared -soname libmsgpack-d.so.1/g' build-msgpack/build.ninja
    ninja -v -C build-msgpack
    DESTDIR="${DESTDIR}" ninja -C build-msgpack install