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.

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)



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages binutils depends on:
ii  libc6                   2.13-4           Embedded GNU C Library: Shared lib
ii  libgcc1                 1:4.6.0-10       GCC support library
ii  libstdc++6              4.6.0-10         The GNU Standard C++ Library v3
ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime

binutils recommends no packages.

Versions of packages binutils suggests:
ii  binutils-doc          2.21.51.20110523-1 Documentation for the GNU assemble

-- no debconf information
 ChangeLog                   |    2 +-
 NEWS                        |    2 +-
 v3c/1-andromeda/Makefile.am |    9 +++++++++
 v3c/Makefile.am             |    4 ++--
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 64d3fdb..42ed0fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -115,7 +115,7 @@
           node_index() gets the index of a node, node_at_index() gets the node
           at the index.
 
-        * Substancial cleanup of macro names + examples
+        * Substantial cleanup of macro names + examples
           Although this doesn't affect library versioning, I thought it
           warranted a large version increase as it makes treedb a lot easier to
           read and use.
diff --git a/NEWS b/NEWS
index 5817204..908cf59 100644
--- a/NEWS
+++ b/NEWS
@@ -100,7 +100,7 @@ Version 0.8.0-01
 
 * Added multi-varray + test
 
-* Substancial cleanup of macro names + examples
+* Substantial cleanup of macro names + examples
   Although this doesn't affect library versioning, I thought it
   warranted a large version increase as it makes treedb a lot easier to
   read and use.
diff --git a/v3c/1-andromeda/Makefile.am b/v3c/1-andromeda/Makefile.am
index fbd068e..be94735 100644
--- a/v3c/1-andromeda/Makefile.am
+++ b/v3c/1-andromeda/Makefile.am
@@ -26,10 +26,19 @@ pointer_int_tree_c_SOURCES           = pointer-int-tree.c
 pointer_int_tree_cxx_SOURCES         = pointer-int-tree.c
 pointer_int_tree_cxx_CPPFLAGS        = $(AM_CPPFLAGS) -x c++
 
+pointer_int_tree_cxx_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(pointer_int_tree_cxx_LDFLAGS) $(LDFLAGS) -o $@
+
 pointer_string_tree_c_SOURCES        = pointer-string-tree.c
 
 pointer_string_tree_cxx_SOURCES      = pointer-string-tree.c
 pointer_string_tree_cxx_CPPFLAGS     = $(AM_CPPFLAGS) -x c++
+#pointer_string_tree_cxx_LDFLAGS      = $(LDFLAGS) $(AM_LDFLAGS) -x c++
+
+pointer_string_tree_cxx_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+       $(pointer_string_tree_cxx_LDFLAGS) $(LDFLAGS) -o $@
 
 offset_fixed_int_tree_c_SOURCES      = offset-fixed-int-tree-c.c
 offset_fixed_int_tree_cxx_SOURCES    = offset-fixed-int-tree-cxx.cpp
diff --git a/v3c/Makefile.am b/v3c/Makefile.am
index 856bb6e..f0f9fec 100644
--- a/v3c/Makefile.am
+++ b/v3c/Makefile.am
@@ -26,11 +26,11 @@ libtreedb_@PACKAGE_API_VERSION@_bare_la_LDFLAGS = 
-no-undefined @PACKAGE_LT_LDFL
 libtreedb_@PACKAGE_API_VERSION@_bare_d_la_SOURCES = treedb.c
 libtreedb_@PACKAGE_API_VERSION@_bare_d_la_CPPFLAGS = $(AM_CPPFLAGS) 
-DTREEDB_DEBUG
 
-libtreedb_@PACKAGE_API_VERSION@_la_SOURCES =
+libtreedb_@PACKAGE_API_VERSION@_la_SOURCES = empty.c
 libtreedb_@PACKAGE_API_VERSION@_la_LDFLAGS = -no-undefined @PACKAGE_LT_LDFLAGS@
 libtreedb_@PACKAGE_API_VERSION@_la_LIBADD = @treedb_BARE_LIBS@ @v3c_LIBS@
 
-libtreedb_@PACKAGE_API_VERSION@_d_la_SOURCES =
+libtreedb_@PACKAGE_API_VERSION@_d_la_SOURCES = empty.c
 libtreedb_@PACKAGE_API_VERSION@_d_la_LDFLAGS = -no-undefined 
@PACKAGE_LT_LDFLAGS@
 libtreedb_@PACKAGE_API_VERSION@_d_la_LIBADD = @treedb_BARE_DEVEL_LIBS@ \
                                        @v3c_DEVEL_LIBS@

Reply via email to