Your message dated Wed, 30 Nov 2011 11:48:50 +0000
with message-id <[email protected]>
and subject line Bug#647105: fixed in leveldb 0+20111031.git36a5f8e-2
has caused the Debian Bug report #647105,
regarding leveldb: FTBFS with ld --as-needed
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
647105: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=647105
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: leveldb
Version: 0+20110926.git26db4d9-2
Severity: normal
Tags: upstream patch
User: [email protected]
Usertags: ld-as-needed

leveldb fails to build when --as-needed linker option is enabled,
because of incorrect order of parameters passed to ld. Here's a log of
failed build in Ubuntu:
https://launchpadlibrarian.net/83614875/buildlog_ubuntu-precise-i386.leveldb_0%2B20110926.git26db4d9-2_FAILEDTOBUILD.txt.gz

See also
http://wiki.debian.org/ToolChain/DSOLinking#Only_link_with_needed_libraries

The attached patch was used in Ubuntu to fix the problem.
https://launchpad.net/ubuntu/+source/leveldb/0+20110926.git26db4d9-2ubuntu1

-- System Information:
Debian Release: wheezy/sid
  APT prefers oneiric-updates
  APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500, 
'oneiric-proposed'), (500, 'oneiric'), (100, 'oneiric-backports')
Architecture: i386 (i686)

Kernel: Linux 3.0.0-13-generic (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Description: fix build with --as-needed linker option
 Put library flags in LIBS variable rather that LDFLAGS. Add LIBS to makefile
 after object files.
Author: Ilya Barygin <[email protected]>

--- leveldb-0+20110926.git26db4d9.orig/Makefile
+++ leveldb-0+20110926.git26db4d9/Makefile
@@ -22,23 +22,23 @@ include build_config.mk
 # (see http://code.google.com/p/snappy/)
 ifeq ($(SNAPPY), 1)
 SNAPPY_CFLAGS=-DSNAPPY
-SNAPPY_LDFLAGS=-lsnappy
+SNAPPY_LIBS=-lsnappy
 else
 SNAPPY_CFLAGS=
-SNAPPY_LDFLAGS=
+SNAPPY_LIBS=
 endif
 
 # If Google Perf Tools are installed, add compilation and linker flags
 # (see http://code.google.com/p/google-perftools/)
 ifeq ($(GOOGLE_PERFTOOLS), 1)
-GOOGLE_PERFTOOLS_LDFLAGS=-ltcmalloc
+GOOGLE_PERFTOOLS_LIBS=-ltcmalloc
 else
-GOOGLE_PERFTOOLS_LDFLAGS=
+GOOGLE_PERFTOOLS_LIBS=
 endif
 
 CFLAGS += -c -I. -I./include $(PORT_CFLAGS) $(PLATFORM_CFLAGS) $(OPT) $(SNAPPY_CFLAGS) -fPIC
 
-LDFLAGS += $(PLATFORM_LDFLAGS) $(SNAPPY_LDFLAGS) $(GOOGLE_PERFTOOLS_LDFLAGS)
+LIBS += $(PLATFORM_LIBS) $(SNAPPY_LIBS) $(GOOGLE_PERFTOOLS_LIBS)
 
 LIBOBJECTS = \
 	./db/builder.o \
@@ -120,68 +120,68 @@ $(LIBRARY): $(LIBOBJECTS)
 	$(AR) -rs $@ $(LIBOBJECTS)
 
 db_bench: db/db_bench.o $(LIBOBJECTS) $(TESTUTIL)
-	$(CC) $(LDFLAGS) db/db_bench.o $(LIBOBJECTS) $(TESTUTIL) -o $@
+	$(CC) $(LDFLAGS) db/db_bench.o $(LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS)
 
 db_bench_sqlite3: doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL)
-	$(CC) $(LDFLAGS) -lsqlite3 doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL) -o $@
+	$(CC) $(LDFLAGS) doc/bench/db_bench_sqlite3.o $(LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS) -lsqlite3 
 
 db_bench_tree_db: doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL)
-	$(CC) $(LDFLAGS) -lkyotocabinet doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL) -o $@
+	$(CC) $(LDFLAGS) doc/bench/db_bench_tree_db.o $(LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS) -lkyotocabinet
 
 arena_test: util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) util/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 c_test: db/c_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 cache_test: util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) util/cache_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 coding_test: util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) util/coding_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 corruption_test: db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/corruption_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 crc32c_test: util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) util/crc32c_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 db_test: db/db_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/db_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/db_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 dbformat_test: db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/dbformat_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 env_test: util/env_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) util/env_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 filename_test: db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/filename_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 log_test: db/log_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/log_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/log_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 table_test: table/table_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) table/table_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) table/table_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 skiplist_test: db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/skiplist_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 version_edit_test: db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/version_edit_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 version_set_test: db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/version_set_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 write_batch_test: db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) db/write_batch_test.o $(LIBOBJECTS) $(TESTHARNESS) -o $@ $(LIBS)
 
 $(MEMENVLIBRARY) : helpers/memenv/memenv.o
 	rm -f $@
 	$(AR) -rs $@ helpers/memenv/memenv.o
 
 memenv_test : helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS)
-	$(CC) $(LDFLAGS) helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS) -o $@
+	$(CC) $(LDFLAGS) helpers/memenv/memenv_test.o $(MEMENVLIBRARY) $(LIBRARY) $(TESTHARNESS) -o $@ $(LIBS)
 
 ifeq ($(PLATFORM), IOS)
 # For iOS, create universal object files to be used on both the simulator and
--- leveldb-0+20110926.git26db4d9.orig/build_detect_platform
+++ leveldb-0+20110926.git26db4d9/build_detect_platform
@@ -8,7 +8,7 @@
 #               -DLEVELDB_PLATFORM_POSIX if cstatomic is present
 #               -DLEVELDB_PLATFORM_NOATOMIC if it is not
 # - PLATFORM_CFLAGS with compiler flags for the platform
-# - PLATFORM_LDFLAGS with linker flags for the platform
+# - PLATFORM_LIBS with linker flags for the platform
 
 # Delete existing build_config.mk
 rm -f build_config.mk
@@ -18,27 +18,27 @@ case `uname -s` in
     Darwin)
         PLATFORM=OS_MACOSX
         echo "PLATFORM_CFLAGS=-DOS_MACOSX" >> build_config.mk
-        echo "PLATFORM_LDFLAGS="  >> build_config.mk
+        echo "PLATFORM_LIBS="  >> build_config.mk
         ;;
     Linux)
         PLATFORM=OS_LINUX
         echo "PLATFORM_CFLAGS=-pthread -DOS_LINUX" >> build_config.mk
-        echo "PLATFORM_LDFLAGS=-lpthread"  >> build_config.mk
+        echo "PLATFORM_LIBS=-lpthread"  >> build_config.mk
         ;;
     SunOS)
         PLATFORM=OS_SOLARIS
         echo "PLATFORM_CFLAGS=-D_REENTRANT -DOS_SOLARIS"  >> build_config.mk
-        echo "PLATFORM_LDFLAGS=-lpthread -lrt" >> build_config.mk
+        echo "PLATFORM_LIBS=-lpthread -lrt" >> build_config.mk
         ;;
     FreeBSD)
         PLATFORM=OS_FREEBSD
         echo "PLATFORM_CFLAGS=-D_REENTRANT -DOS_FREEBSD"  >> build_config.mk
-        echo "PLATFORM_LDFLAGS=-lpthread" >> build_config.mk
+        echo "PLATFORM_LIBS=-lpthread" >> build_config.mk
         ;;
     GNU/kFreeBSD)
         PLATFORM=OS_FREEBSD
         echo "PLATFORM_CFLAGS=-pthread -DOS_FREEBSD"  >> build_config.mk
-        echo "PLATFORM_LDFLAGS=-lpthread -lrt" >> build_config.mk
+        echo "PLATFORM_LIBS=-lpthread -lrt" >> build_config.mk
         ;;
     *)
         echo "Unknown platform!"

--- End Message ---
--- Begin Message ---
Source: leveldb
Source-Version: 0+20111031.git36a5f8e-2

We believe that the bug you reported is fixed in the latest version of
leveldb, which is due to be installed in the Debian FTP archive:

leveldb-doc_0+20111031.git36a5f8e-2_all.deb
  to main/l/leveldb/leveldb-doc_0+20111031.git36a5f8e-2_all.deb
leveldb_0+20111031.git36a5f8e-2.debian.tar.gz
  to main/l/leveldb/leveldb_0+20111031.git36a5f8e-2.debian.tar.gz
leveldb_0+20111031.git36a5f8e-2.dsc
  to main/l/leveldb/leveldb_0+20111031.git36a5f8e-2.dsc
libleveldb-dev_0+20111031.git36a5f8e-2_amd64.deb
  to main/l/leveldb/libleveldb-dev_0+20111031.git36a5f8e-2_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Alessio Treglia <[email protected]> (supplier of updated leveldb package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 30 Nov 2011 12:06:07 +0100
Source: leveldb
Binary: libleveldb-dev leveldb-doc
Architecture: source amd64 all
Version: 0+20111031.git36a5f8e-2
Distribution: unstable
Urgency: low
Maintainer: Alessio Treglia <[email protected]>
Changed-By: Alessio Treglia <[email protected]>
Description: 
 leveldb-doc - LevelDB documentation
 libleveldb-dev - fast key-value storage library
Closes: 647105 648248
Changes: 
 leveldb (0+20111031.git36a5f8e-2) unstable; urgency=low
 .
   * Fix build failure with --as-needed flag enabled (Closes: #647105).
   * Re-introduce Cristoph Egger's patch to allow compilation
     on kFreeBSD (Closes: #648248).
Checksums-Sha1: 
 53f41e838f123e231a9bece5b9a63a40a42eba87 1361 
leveldb_0+20111031.git36a5f8e-2.dsc
 38240ed138225848cb65276d6443025b3e710760 9463 
leveldb_0+20111031.git36a5f8e-2.debian.tar.gz
 6f9092174ff805094645937d84d715288b1190a2 195702 
libleveldb-dev_0+20111031.git36a5f8e-2_amd64.deb
 51d4ecf57c788a372b8b72359df54f6559b09cf2 32202 
leveldb-doc_0+20111031.git36a5f8e-2_all.deb
Checksums-Sha256: 
 29291ae23bdf7442abbb695eb5fded5133213cf2c6f003a8e96d9dc8f8557cc8 1361 
leveldb_0+20111031.git36a5f8e-2.dsc
 fdb00dd0ad00df8657acb957b792c82467399d6c8c3bc0ba99d00ae4bc5d32c8 9463 
leveldb_0+20111031.git36a5f8e-2.debian.tar.gz
 bb1658ec2235f76df6ac5206c3028014a6bfa1a94c8be82fb9d34c8c0ab65ed4 195702 
libleveldb-dev_0+20111031.git36a5f8e-2_amd64.deb
 fe41903886c064fcdb3c2675914cb966a7072c9cfbd32237e02da3e91e9a0a46 32202 
leveldb-doc_0+20111031.git36a5f8e-2_all.deb
Files: 
 81d9b0326fda66d8bf81e8bb626c5a07 1361 database optional 
leveldb_0+20111031.git36a5f8e-2.dsc
 8791ca30056dcfc504625ee74c822f99 9463 database optional 
leveldb_0+20111031.git36a5f8e-2.debian.tar.gz
 c43489460a139da761f91e7cd3665483 195702 libdevel optional 
libleveldb-dev_0+20111031.git36a5f8e-2_amd64.deb
 47711b459ae157bf43894397c495b30f 32202 doc optional 
leveldb-doc_0+20111031.git36a5f8e-2_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk7WFGQACgkQRdSMfNz8P9CBXwCdFiNaX3bHRQxmPkSZOXHnJ+zD
Eg0AnjnnUCmHA3uW+gFUv5z6sDF7oldW
=I1F/
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to