From patchwork Tue Jul 2 19:31:38 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 256493 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "aserp1040.oracle.com", Issuer "VeriSign Class 3 International Server CA - G3" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 8EB542C0087 for ; Wed, 3 Jul 2013 05:32:01 +1000 (EST) Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r62JVwL2014052 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 2 Jul 2013 19:31:59 GMT Received: from oss.oracle.com (oss-external.oracle.com [137.254.96.51]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r62JVwRS027365 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 2 Jul 2013 19:31:58 GMT Received: from localhost ([127.0.0.1] helo=oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1Uu6Iw-0000TZ-6D; Tue, 02 Jul 2013 12:31:58 -0700 Received: from ucsinet21.oracle.com ([156.151.31.93]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1Uu6Ie-0000SG-S7 for fedfs-utils-devel@oss.oracle.com; Tue, 02 Jul 2013 12:31:40 -0700 Received: from aserp1020.oracle.com (aserp1020.oracle.com [141.146.126.67]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r62JVd4a002601 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 2 Jul 2013 19:31:40 GMT Received: from manray.1015granger.net (adsl-99-26-161-222.dsl.sfldmi.sbcglobal.net [99.26.161.222]) by aserp1020.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r62JVc28028477 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 2 Jul 2013 19:31:39 GMT Received: from manray.1015granger.net (localhost [127.0.0.1]) by manray.1015granger.net (8.14.7/8.14.7) with ESMTP id r62JVceN048446 for ; Tue, 2 Jul 2013 15:31:38 -0400 To: fedfs-utils-devel@oss.oracle.com From: Chuck Lever Date: Tue, 02 Jul 2013 15:31:38 -0400 Message-ID: <20130702193138.48202.27521.stgit@manray.1015granger.net> In-Reply-To: <20130702191631.48202.83851.stgit@manray.1015granger.net> References: <20130702191631.48202.83851.stgit@manray.1015granger.net> User-Agent: StGit/0.16 MIME-Version: 1.0 X-Flow-Control-Info: class=Pass-to-MM reputation=ipRisk-All ip=99.26.161.222 ct-class=T2 ct-vol1=1 ct-vol2=0 ct-vol3=0 ct-risk=58 ct-spam1=0 ct-spam2=0 ct-bulk=0 rcpts=1 size=6687 X-Sendmail-CM-Score: 0.00% X-Sendmail-CM-Analysis: v=2.1 cv=bpF1Wiqi c=1 sm=1 tr=0 a=VArTBjHSyJYTe+J30wkXtQ==:117 a=VArTBjHSyJYTe+J30wkXtQ==:17 a=dzsqy3y4QnMA:10 a=N1bzSuSEXogA:10 a=dPGociXpb70A:10 a=IkcTkHD0fZMA:10 a=yPCof4ZbAAAA:8 a=Lb1rMZzfAAAA:8 a=a8wM_x19Y6MA:10 a=7mOBRU54AAAA:8 a=1 6i8BVe1b2E-jD-WQUUA:9 a=QEXdDO2ut3YA:10 a=0kPLrQdw3YYA:10 X-Sendmail-CT-Classification: not spam X-Sendmail-CT-RefID: str=0001.0A090209.51D32A9B.00A5, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 Subject: [fedfs-utils] [PATCH 10/11] build: fix gcc linker library argument placement X-BeenThere: fedfs-utils-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list Reply-To: fedfs-utils Developers List-Id: fedfs-utils Developers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: fedfs-utils-devel-bounces@oss.oracle.com Errors-To: fedfs-utils-devel-bounces@oss.oracle.com X-Source-IP: acsinet21.oracle.com [141.146.126.237] From: David Disseldorp The build currently fails on gcc 4.7.3 based openSUSE systems due to the placement of library arguments while linking, and the use of the --as-needed binutils feature. As described by http://www.gentoo.org/proj/en/qa/asneeded.xml: For symbols missing in a given file (either an object file, a static archive or a library), the linker checks only in the files coming after it. Without --as-needed, files are linked together without considering ordering. But with the flag, the libraries that aren't used for resolving symbols are discarded and thus not linked. Signed-off-by: David Disseldorp --- src/fedfsc/Makefile.am | 10 +++++----- src/fedfsd/Makefile.am | 10 +++++----- src/mount/Makefile.am | 8 ++++---- src/nfsref/Makefile.am | 10 +++++----- src/nsdbc/Makefile.am | 10 +++++----- src/nsdbparams/Makefile.am | 10 +++++----- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/fedfsc/Makefile.am b/src/fedfsc/Makefile.am index 20336c0..808c886 100644 --- a/src/fedfsc/Makefile.am +++ b/src/fedfsc/Makefile.am @@ -30,13 +30,13 @@ sbin_PROGRAMS = fedfs-null \ fedfs-lookup-junction \ fedfs-create-replication fedfs-delete-replication \ fedfs-lookup-replication -LDADD = $(LIBTIRPC) $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ - $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) \ - $(LIBCRYPTO) $(LIBSSL) \ - $(top_builddir)/src/libadmin/libadmin.la \ +LDADD = $(top_builddir)/src/libadmin/libadmin.la \ $(top_builddir)/src/libjunction/libjunction.la \ $(top_builddir)/src/libnsdb/libnsdb.la \ - $(top_builddir)/src/libxlog/libxlog.la + $(top_builddir)/src/libxlog/libxlog.la \ + $(LIBTIRPC) $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ + $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) \ + $(LIBCRYPTO) $(LIBSSL) CLEANFILES = cscope.in.out cscope.out cscope.po.out *~ DISTCLEANFILES = Makefile.in diff --git a/src/fedfsd/Makefile.am b/src/fedfsd/Makefile.am index f6fdb12..583a49a 100644 --- a/src/fedfsd/Makefile.am +++ b/src/fedfsd/Makefile.am @@ -27,13 +27,13 @@ noinst_HEADERS = fedfsd.h RPCPREFIX = rpc. sbin_PROGRAMS = fedfsd fedfsd_SOURCES = listen.c main.c privilege.c svc.c -fedfsd_LDADD = $(LIBTIRPC) $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ - $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) $(LIBCAP) \ - $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) \ - $(top_builddir)/src/libadmin/libadmin.la \ +fedfsd_LDADD = $(top_builddir)/src/libadmin/libadmin.la \ $(top_builddir)/src/libnsdb/libnsdb.la \ $(top_builddir)/src/libjunction/libjunction.la \ - $(top_builddir)/src/libxlog/libxlog.la + $(top_builddir)/src/libxlog/libxlog.la \ + $(LIBTIRPC) $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ + $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) $(LIBCAP) \ + $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) CLEANFILES = cscope.in.out cscope.out cscope.po.out *~ DISTCLEANFILES = Makefile.in diff --git a/src/mount/Makefile.am b/src/mount/Makefile.am index 92eb9a2..b48d842 100644 --- a/src/mount/Makefile.am +++ b/src/mount/Makefile.am @@ -27,12 +27,12 @@ noinst_HEADERS = nls.h root_sbin_PROGRAMS = mount.fedfs sbin_PROGRAMS = fedfs-map-nfs4 fedfs_map_nfs4_SOURCES = fedfs-map-nfs4.c -fedfs_map_nfs4_LDADD = $(LIBRESOLV) \ - $(top_builddir)/src/libsi/libsi.la +fedfs_map_nfs4_LDADD = $(top_builddir)/src/libsi/libsi.la \ + $(LIBRESOLV) mount_fedfs_SOURCES = main.c # mount.fedfs must never link against libraries in /usr -mount_fedfs_LDADD = $(LIBRESOLV) \ - $(top_builddir)/src/libsi/libsi.la +mount_fedfs_LDADD = $(top_builddir)/src/libsi/libsi.la \ + $(LIBRESOLV) CLEANFILES = cscope.in.out cscope.out cscope.po.out *~ DISTCLEANFILES = Makefile.in diff --git a/src/nfsref/Makefile.am b/src/nfsref/Makefile.am index f02fe35..71e9242 100644 --- a/src/nfsref/Makefile.am +++ b/src/nfsref/Makefile.am @@ -26,12 +26,12 @@ noinst_HEADERS = nfsref.h sbin_PROGRAMS = nfsref nfsref_SOURCES = add.c lookup.c nfsref.c remove.c -LDADD = $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ - $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) \ - $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) \ - $(top_builddir)/src/libnsdb/libnsdb.la \ +LDADD = $(top_builddir)/src/libnsdb/libnsdb.la \ $(top_builddir)/src/libxlog/libxlog.la \ - $(top_builddir)/src/libjunction/libjunction.la + $(top_builddir)/src/libjunction/libjunction.la \ + $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ + $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) \ + $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) CLEANFILES = cscope.in.out cscope.out cscope.po.out *~ DISTCLEANFILES = Makefile.in diff --git a/src/nsdbc/Makefile.am b/src/nsdbc/Makefile.am index f80bed5..0b32082 100644 --- a/src/nsdbc/Makefile.am +++ b/src/nsdbc/Makefile.am @@ -28,12 +28,12 @@ sbin_PROGRAMS = nsdb-annotate nsdb-describe nsdb-list \ nsdb-delete-nsdb nsdb-simple-nce \ nsdb-create-fsn nsdb-delete-fsn nsdb-resolve-fsn \ nsdb-create-fsl nsdb-delete-fsl nsdb-update-fsl -LDADD = $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ - $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) \ - $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) \ - $(top_builddir)/src/libnsdb/libnsdb.la \ +LDADD = $(top_builddir)/src/libnsdb/libnsdb.la \ $(top_builddir)/src/libxlog/libxlog.la \ - $(top_builddir)/src/libjunction/libjunction.la + $(top_builddir)/src/libjunction/libjunction.la \ + $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ + $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) \ + $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) CLEANFILES = cscope.in.out cscope.out cscope.po.out *~ DISTCLEANFILES = Makefile.in diff --git a/src/nsdbparams/Makefile.am b/src/nsdbparams/Makefile.am index cd347a7..0da4d0c 100644 --- a/src/nsdbparams/Makefile.am +++ b/src/nsdbparams/Makefile.am @@ -26,12 +26,12 @@ noinst_HEADERS = nsdbparams.h sbin_PROGRAMS = nsdbparams nsdbparams_SOURCES = delete.c list.c main.c show.c update.c -LDADD = $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ - $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) $(LIBCAP) \ - $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) \ - $(top_builddir)/src/libnsdb/libnsdb.la \ +LDADD = $(top_builddir)/src/libnsdb/libnsdb.la \ $(top_builddir)/src/libjunction/libjunction.la \ - $(top_builddir)/src/libxlog/libxlog.la + $(top_builddir)/src/libxlog/libxlog.la \ + $(LIBLDAP) $(LIBLBER) $(LIBXML2) \ + $(LIBSQLITE3) $(LIBIDN) $(LIBUUID) $(LIBCAP) \ + $(LIBURIPARSER) $(LIBCRYPTO) $(LIBSSL) CLEANFILES = cscope.in.out cscope.out cscope.po.out *~ DISTCLEANFILES = Makefile.in