On 06/07/2011 08:58 AM, Philip Ashmore wrote:
Package: binutils
Version: 2.21.51.20110523-1
Severity: normal

I've just uploaded v3c-1.8.2-02.
It builds just fine.

treedb-0.9.2-01, however isn't so fortunate.

You'll need to download both from SourceForge
http://sourceforge.net/projects/v3c/
http://sourceforge.net/projects/treedb/

I've put links to them at http://www.philipashmore.com/v3c/
for convenience.

I will attach a patch you will need to apply to treedb as I worked through
other problems,
detailed before the show stopper.

I used a library "trick" to allow developers to link against libv3c-1.8.so and
libtreedb-0.9-bare.so
which is to create an empty library that requires both.

yes, if a binary uses symbols from one of these libraries, the binary has to be linked with these. That's caused by -Wl,--no-add-needed.

libtreedb_@PACKAGE_API_VERSION@_la_SOURCES =
libtreedb_@PACKAGE_API_VERSION@_la_LIBADD = @treedb_BARE_LIBS@ @v3c_LIBS@

This used to work, but with automake/gcc/ld on Wheezy, it results in a static
library that's
a text file that contains a single line:

"!<arch>"

Adding an empty "C" file, empty.c that's er, empty, to the above solves this.

libtreedb_@PACKAGE_API_VERSION@_la_SOURCES = empty.c
libtreedb_@PACKAGE_API_VERSION@_d_la_SOURCES = empty.c

And the build can proceed.

The reason for this bug report is because of what happens in
build/v3c/2-cartwheel -
a show stopper.

libtool: link: gcc -g -ggdb -O0 -Wall -Wextra -Werror -Wformat -fno-strict-
aliasing -pthread -o .libs/allocator-test-16 allocator_test_16-allocator-test.o
.../../v3c/.libs/libtreedb-0.9.so -luuid -L/usr/lib -lpthread -pthread
/usr/bin/ld: allocator_test_16-allocator-test.o: undefined reference to symbol
'v3c_native_endian_index'
/usr/bin/ld: note: 'v3c_native_endian_index' is defined in DSO
/v3c/dev/autobook/treedb/build/v3c/.libs/libtreedb-0.9-bare.so.902 so try
adding it to the linker command line
/v3c/dev/autobook/treedb/build/v3c/.libs/libtreedb-0.9-bare.so.902: could not
read symbols: Invalid operation

I can run

   $ ldd build/v3c/.libs/libtreedb-0.9.so

which reports
         linux-vdso.so.1 =>   (0x00007fff191ff000)
         libtreedb-0.9-bare.so.902 =>
/v3c/dev/autobook/treedb/build/v3c/.libs/libtreedb-0.9-bare.so.902
(0x00007fec25bff000)
         libv3c-1.8.so.802 =>  /usr/lib/libv3c-1.8.so.802 (0x00007fec259e9000)
         libuuid.so.1 =>  /lib/libuuid.so.1 (0x00007fec257b5000)
         libpthread.so.0 =>  /lib/libpthread.so.0 (0x00007fec25599000)
         libc.so.6 =>  /lib/libc.so.6 (0x00007fec25216000)
         libstdc++.so.6 =>  /usr/lib/libstdc++.so.6 (0x00007fec24f0b000)
         libm.so.6 =>  /lib/libm.so.6 (0x00007fec24c89000)
         libgcc_s.so.1 =>  /lib/libgcc_s.so.1 (0x00007fec24a73000)
         /lib64/ld-linux-x86-64.so.2 (0x00007fec26004000)

the linker error looks correct; I assume this is an issue with the build system.
adding a

 libtreedb_@PACKAGE_API_VERSION@_la_DEPENDENCIES = @treedb_BARE_LIBS@ @v3c_LIBS@

should fix the issue.



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to