]> code.ossystems Code Review - openembedded-core.git/commitdiff
libtool-2.2.2: Add patch from upstream to fix -all-static flag issues
authorRichard Purdie <richard@openedhand.com>
Tue, 22 Apr 2008 21:27:34 +0000 (21:27 +0000)
committerRichard Purdie <richard@openedhand.com>
Tue, 22 Apr 2008 21:27:34 +0000 (21:27 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4311 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/libtool/libtool-2.2.2/fix_static.patch [new file with mode: 0644]
meta/packages/libtool/libtool-cross_2.2.2.bb
meta/packages/libtool/libtool-native_2.2.2.bb
meta/packages/libtool/libtool_2.2.2.bb

diff --git a/meta/packages/libtool/libtool-2.2.2/fix_static.patch b/meta/packages/libtool/libtool-2.2.2/fix_static.patch
new file mode 100644 (file)
index 0000000..10803c7
--- /dev/null
@@ -0,0 +1,129 @@
+From Ralf.Wildenhues@gmx.de Tue Apr 22 20:44:16 2008
+Return-Path: <Ralf.Wildenhues@gmx.de>
+X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on tim.rpsys.net
+X-Spam-Level: 
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham
+       version=3.2.4
+Received: from localhost (localhost [127.0.0.1]) by tim.rpsys.net
+       (8.13.6/8.13.8) with ESMTP id m3MJiGXW016935 for <rpurdie@[127.0.0.1]>;
+       Tue, 22 Apr 2008 20:44:16 +0100
+Received: from tim.rpsys.net ([127.0.0.1]) by localhost (tim.rpsys.net
+       [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 16773-04 for
+       <rpurdie@[127.0.0.1]>; Tue, 22 Apr 2008 20:44:07 +0100 (BST)
+Received: from merkur.ins.uni-bonn.de (merkur.ins.uni-bonn.de
+       [131.220.223.13]) by tim.rpsys.net (8.13.6/8.13.8) with ESMTP id
+       m3MJi2sT016913 for <rpurdie@rpsys.net>; Tue, 22 Apr 2008 20:44:02 +0100
+Received: from localhost.localdomain (xdsl-87-79-251-12.netcologne.de
+       [87.79.251.12]) by merkur.ins.uni-bonn.de (Postfix) with ESMTP id
+       54F1C400002D4; Tue, 22 Apr 2008 21:43:56 +0200 (CEST)
+Received: from ralf by localhost.localdomain with local (Exim 4.63)
+       (envelope-from <Ralf.Wildenhues@gmx.de>) id 1JoOP7-0007yr-Aw; Tue, 22 Apr
+       2008 21:43:49 +0200
+Date: Tue, 22 Apr 2008 21:43:49 +0200
+From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+To: Richard Purdie <rpurdie@rpsys.net>, libtool-patches@gnu.org
+Cc: libtool@gnu.org
+Subject: Re: libtool 2.2.2, ccache and -all-static
+Message-ID: <20080422194348.GE5035@ins.uni-bonn.de>
+Mail-Followup-To: Richard Purdie <rpurdie@rpsys.net>,
+       libtool-patches@gnu.org, libtool@gnu.org
+References: <1208860190.5479.8.camel@dax.rpnet.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <1208860190.5479.8.camel@dax.rpnet.com>
+Organization: Department of Numerical Simulation, University of Bonn
+User-Agent: Mutt/1.5.17+20080114 (2008-01-14)
+X-Virus-Scanned: amavisd-new at rpsys.net
+X-Evolution-Source: imap://richard@tim.rpsys.net/
+Content-Transfer-Encoding: 8bit
+
+Hi Richard,
+
+* Richard Purdie wrote on Tue, Apr 22, 2008 at 12:29:50PM CEST:
+> 
+> I've noticed another problem with two packages in poky, prelink and
+> libvorbis. Both packages have areas where LDFLAGS="-all-static" is used.
+> 
+> The problem comes about since Poky sets CC to "ccache gcc", then libtool
+> puts the -static flag between ccache and gcc.
+
+Thanks for the bug report, and especially for providing an example to
+reproduce it!
+
+> libtool: link: ccache -static gcc -O20 -ffast-math -D_REENTRANT -fsigned-char -DUSE_MEMORY_H -o decoder_example decoder_example.o  ../lib/.libs/libvorbis.a -lm /usr/lib/libogg.a
+
+Confirmed.  Fixed as below, committed, put you in THANKS.
+
+Cheers,
+Ralf
+
+2008-04-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Fix regression over 1.5.26 with ccache $CC -all-static.
+       * libltdl/config/ltmain.m4sh (func_mode_link): Add
+       $link_static_flag to compile_command and link_command only
+       later, instead of right after a possible compiler wrapper.
+       * tests/static.at (ccache -all-static): New test.
+       * THANKS: Update.
+       Report by Richard Purdie.
+
+diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
+index ff1e50d..ac334dc 100644
+--- a/libltdl/config/ltmain.m4sh
++++ b/libltdl/config/ltmain.m4sh
+@@ -3160,9 +3160,6 @@ func_mode_link ()
+         fi
+         if test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+-          # See comment for -static flag below, for more details.
+-          func_append compile_command " $link_static_flag"
+-          func_append finalize_command " $link_static_flag"
+         fi
+         prefer_static_libs=yes
+         ;;
+@@ -3450,7 +3447,11 @@ func_mode_link ()
+       case $arg in
+       -all-static)
+-      # The effects of -all-static are defined in a previous loop.
++      if test -n "$link_static_flag"; then
++        # See comment for -static flag below, for more details.
++        func_append compile_command " $link_static_flag"
++        func_append finalize_command " $link_static_flag"
++      fi
+       continue
+       ;;
+diff --git a/tests/static.at b/tests/static.at
+index 74b1c63..1a51d0d 100644
+--- a/tests/static.at
++++ b/tests/static.at
+@@ -352,3 +352,26 @@ for withdep in no yes; do
+ done
+ AT_CLEANUP
++
++
++AT_SETUP([ccache -all-static])
++
++AT_DATA([ccache],
++[[#! /bin/sh
++# poor man's ccache clone
++case $1 in
++-*) echo "bogus argument: $1" >&2; exit 1 ;;
++esac
++exec "$@"
++]])
++chmod +x ./ccache
++
++AT_DATA([a.c],
++[[int main(void) { return 0; }
++]])
++
++AT_CHECK([$CC $CPPFLAGS $CFLAGS -c a.c], [], [ignore])
++AT_CHECK([$LIBTOOL --mode=link --tag=CC ./ccache $CC $CFLAGS $LDFLAGS -all-static a.$OBJEXT -o a],
++       [], [ignore])
++
++AT_CLEANUP
+
index 9c0b30ce5c01c1ea1c4f4bec9bd143e6af8a8621..61750072324f0bb260f8cf771a885d4600009e80 100644 (file)
@@ -1,7 +1,7 @@
 require libtool.inc
 require libtool_${PV}.bb
 
-PR = "r15"
+PR = "r16"
 PACKAGES = ""
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
 SRC_URI_append = " file://libdir-la.patch;patch=1 \
index 6b5f379318fab57214c4a56c8181c8456f3278fc..74d4d1bfc7f9c9d6d791e2cd5c36b3e0e9df1a6e 100644 (file)
@@ -1,7 +1,7 @@
 require libtool.inc
 require libtool_${PV}.bb
 
-PR = "r11"
+PR = "r12"
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
 SRC_URI_append = " file://libdir-la.patch;patch=1 \
                    file://prefix.patch;patch=1 \
index 05f39fa370e5b03bf58bab79606ed55c151f728c..afc3daea487bf69bb935c28a2fb2f5608e7bf798 100644 (file)
@@ -1,8 +1,9 @@
 require libtool.inc
 
-PR = "r6"
+PR = "r7"
 
 SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
+           file://fix_static.patch;patch=1 \
            file://uclibc.patch;patch=1 \
            file://dolt.m4"
 S = "${WORKDIR}/libtool-${PV}"