Package: 4store
Version: 1.1.3-1
Severity: normal
Tags: upstream patch
User: [email protected]
Usertags: ld-as-needed

The package 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/72378541/buildlog_ubuntu-oneiric-i386.4store_1.1.3-1_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/4store/1.1.3-1ubuntu1

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

Kernel: Linux 2.6.38-10-generic (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Description: Move libraries to LIBS variable. This fixes build problem with
 --as-needed linker option.
Author: Ilya Barygin <[email protected]>
Bug-Ubuntu: https://launchpad.net/bugs/803170
--- 4store-1.1.3.orig/src/backend/Makefile.am
+++ 4store-1.1.3/src/backend/Makefile.am
@@ -1,5 +1,5 @@
 AM_CFLAGS = -Wall -g -std=gnu99 -O2 -I.. -DGIT_REV=@GIT_REV@ @RAPTOR_CFLAGS@ @GLIB_CFLAGS@ @MDNS_CFLAGS@
-AM_LDFLAGS = -lz @RAPTOR_LIBS@ @GLIB_LIBS@ @MDNS_LIBS@
+LIBS = -lz @RAPTOR_LIBS@ @GLIB_LIBS@ @MDNS_LIBS@
 
 bin_PROGRAMS = 4s-backend
 
--- 4store-1.1.3.orig/src/backend/Makefile.in
+++ 4store-1.1.3/src/backend/Makefile.in
@@ -309,7 +309,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 AM_CFLAGS = -Wall -g -std=gnu99 -O2 -I.. -DGIT_REV=@GIT_REV@ @RAPTOR_CFLAGS@ @GLIB_CFLAGS@ @MDNS_CFLAGS@
-AM_LDFLAGS = -lz @RAPTOR_LIBS@ @GLIB_LIBS@ @MDNS_LIBS@
+LIBS = -lz @RAPTOR_LIBS@ @GLIB_LIBS@ @MDNS_LIBS@
 noinst_LIBRARIES = lib4storage.a
 noinst_HEADERS = backend-intl.h backend.h bucket.h chain.h disk-space.h import-backend.h list.h lock.h metadata.h mhash.h prefix-trie.h ptable.h ptree.h query-backend.h rhash.h sort.h tbchain.h tlist.h tree-intl.h tree.h
 LIB_OBJS = chain.o bucket.o list.o tlist.o rhash.o mhash.o sort.o \
--- 4store-1.1.3.orig/src/http/Makefile.am
+++ 4store-1.1.3/src/http/Makefile.am
@@ -6,7 +6,7 @@ FRONTEND = ../frontend/query-cache.o ../
 
 # PROFILE = -pg
 AM_CFLAGS = -std=gnu99 -Wall $(PROFILE) -g -O2 -I./ -I../ -DGIT_REV=@GIT_REV@ @RASQAL_CFLAGS@ @RAPTOR_CFLAGS@ @GLIB_CFLAGS@ @LIBXML_CFLAGS@ @GTHREAD_CFLAGS@ @MDNS_CFLAGS@ `pcre-config --cflags`
-AM_LDFLAGS = $(PROFILE) @RASQAL_LIBS@ @RAPTOR_LIBS@ @GLIB_LIBS@ @LIBXML_LIBS@ @GTHREAD_LIBS@ @MDNS_LIBS@ `pcre-config --libs`
+LIBS = $(PROFILE) @RASQAL_LIBS@ @RAPTOR_LIBS@ @GLIB_LIBS@ @LIBXML_LIBS@ @GTHREAD_LIBS@ @MDNS_LIBS@ `pcre-config --libs`
 
 4s_httpd_SOURCES = httpd.c ../common/gnu-options.c
 4s_httpd_LDADD = ../common/lib4sintl.a $(FRONTEND) ../common/libsort.a ../libs/stemmer/libstemmer.a ../libs/double-metaphone/libdouble_metaphone.a
--- 4store-1.1.3.orig/src/http/Makefile.in
+++ 4store-1.1.3/src/http/Makefile.in
@@ -215,7 +215,7 @@ FRONTEND = ../frontend/query-cache.o ../
 
 # PROFILE = -pg
 AM_CFLAGS = -std=gnu99 -Wall $(PROFILE) -g -O2 -I./ -I../ -DGIT_REV=@GIT_REV@ @RASQAL_CFLAGS@ @RAPTOR_CFLAGS@ @GLIB_CFLAGS@ @LIBXML_CFLAGS@ @GTHREAD_CFLAGS@ @MDNS_CFLAGS@ `pcre-config --cflags`
-AM_LDFLAGS = $(PROFILE) @RASQAL_LIBS@ @RAPTOR_LIBS@ @GLIB_LIBS@ @LIBXML_LIBS@ @GTHREAD_LIBS@ @MDNS_LIBS@ `pcre-config --libs`
+LIBS = $(PROFILE) @RASQAL_LIBS@ @RAPTOR_LIBS@ @GLIB_LIBS@ @LIBXML_LIBS@ @GTHREAD_LIBS@ @MDNS_LIBS@ `pcre-config --libs`
 4s_httpd_SOURCES = httpd.c ../common/gnu-options.c
 4s_httpd_LDADD = ../common/lib4sintl.a $(FRONTEND) ../common/libsort.a ../libs/stemmer/libstemmer.a ../libs/double-metaphone/libdouble_metaphone.a
 all: all-am
--- 4store-1.1.3.orig/src/utilities/Makefile.am
+++ 4store-1.1.3/src/utilities/Makefile.am
@@ -1,5 +1,5 @@
 AM_CFLAGS = -Wall -g -std=gnu99 -I.. -DGIT_REV=@GIT_REV@ @GLIB_CFLAGS@
-AM_LDFLAGS = -lz @GLIB_LIBS@ @RAPTOR_LIBS@
+LIBS = -lz @GLIB_LIBS@ @RAPTOR_LIBS@
 
 bin_PROGRAMS = 4s-backend-setup 4s-backend-destroy 4s-backend-info 4s-backend-copy 4s-backend-passwd
 
--- 4store-1.1.3.orig/src/utilities/Makefile.in
+++ 4store-1.1.3/src/utilities/Makefile.in
@@ -262,7 +262,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 AM_CFLAGS = -Wall -g -std=gnu99 -I.. -DGIT_REV=@GIT_REV@ @GLIB_CFLAGS@
-AM_LDFLAGS = -lz @GLIB_LIBS@ @RAPTOR_LIBS@
+LIBS = -lz @GLIB_LIBS@ @RAPTOR_LIBS@
 dist_bin_SCRIPTS = 4s-ssh-all 4s-ssh-all-parallel \
  4s-cluster-create 4s-cluster-destroy 4s-cluster-start 4s-cluster-stop \
  4s-cluster-info 4s-dump 4s-restore 4s-file-backup 4s-cluster-file-backup \

Reply via email to