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 ---