Missing symbol while building msgpack-d library
Closed this issue · 1 comments
bioinfornatics commented
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
bioinfornatics commented
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