summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2008-04-22 21:27:34 +0000
committerRichard Purdie <richard@openedhand.com>2008-04-22 21:27:34 +0000
commitc79d9c1bba76945a96e44d783531189194018755 (patch)
treee77928828c1237a2cf52d88e606495b0c848b44b
parent4f42e4f58a279cb421423eefe976e2e87fbbb48a (diff)
downloadpoky-c79d9c1bba76945a96e44d783531189194018755.tar.gz
libtool-2.2.2: Add patch from upstream to fix -all-static flag issues
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4311 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rw-r--r--meta/packages/libtool/libtool-2.2.2/fix_static.patch129
-rw-r--r--meta/packages/libtool/libtool-cross_2.2.2.bb2
-rw-r--r--meta/packages/libtool/libtool-native_2.2.2.bb2
-rw-r--r--meta/packages/libtool/libtool_2.2.2.bb3
4 files changed, 133 insertions, 3 deletions
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
index 0000000000..10803c7d84
--- /dev/null
+++ b/meta/packages/libtool/libtool-2.2.2/fix_static.patch
@@ -0,0 +1,129 @@
1From Ralf.Wildenhues@gmx.de Tue Apr 22 20:44:16 2008
2Return-Path: <Ralf.Wildenhues@gmx.de>
3X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on tim.rpsys.net
4X-Spam-Level:
5X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham
6 version=3.2.4
7Received: from localhost (localhost [127.0.0.1]) by tim.rpsys.net
8 (8.13.6/8.13.8) with ESMTP id m3MJiGXW016935 for <rpurdie@[127.0.0.1]>;
9 Tue, 22 Apr 2008 20:44:16 +0100
10Received: from tim.rpsys.net ([127.0.0.1]) by localhost (tim.rpsys.net
11 [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 16773-04 for
12 <rpurdie@[127.0.0.1]>; Tue, 22 Apr 2008 20:44:07 +0100 (BST)
13Received: from merkur.ins.uni-bonn.de (merkur.ins.uni-bonn.de
14 [131.220.223.13]) by tim.rpsys.net (8.13.6/8.13.8) with ESMTP id
15 m3MJi2sT016913 for <rpurdie@rpsys.net>; Tue, 22 Apr 2008 20:44:02 +0100
16Received: from localhost.localdomain (xdsl-87-79-251-12.netcologne.de
17 [87.79.251.12]) by merkur.ins.uni-bonn.de (Postfix) with ESMTP id
18 54F1C400002D4; Tue, 22 Apr 2008 21:43:56 +0200 (CEST)
19Received: from ralf by localhost.localdomain with local (Exim 4.63)
20 (envelope-from <Ralf.Wildenhues@gmx.de>) id 1JoOP7-0007yr-Aw; Tue, 22 Apr
21 2008 21:43:49 +0200
22Date: Tue, 22 Apr 2008 21:43:49 +0200
23From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24To: Richard Purdie <rpurdie@rpsys.net>, libtool-patches@gnu.org
25Cc: libtool@gnu.org
26Subject: Re: libtool 2.2.2, ccache and -all-static
27Message-ID: <20080422194348.GE5035@ins.uni-bonn.de>
28Mail-Followup-To: Richard Purdie <rpurdie@rpsys.net>,
29 libtool-patches@gnu.org, libtool@gnu.org
30References: <1208860190.5479.8.camel@dax.rpnet.com>
31MIME-Version: 1.0
32Content-Type: text/plain; charset=us-ascii
33Content-Disposition: inline
34In-Reply-To: <1208860190.5479.8.camel@dax.rpnet.com>
35Organization: Department of Numerical Simulation, University of Bonn
36User-Agent: Mutt/1.5.17+20080114 (2008-01-14)
37X-Virus-Scanned: amavisd-new at rpsys.net
38X-Evolution-Source: imap://richard@tim.rpsys.net/
39Content-Transfer-Encoding: 8bit
40
41Hi Richard,
42
43* Richard Purdie wrote on Tue, Apr 22, 2008 at 12:29:50PM CEST:
44>
45> I've noticed another problem with two packages in poky, prelink and
46> libvorbis. Both packages have areas where LDFLAGS="-all-static" is used.
47>
48> The problem comes about since Poky sets CC to "ccache gcc", then libtool
49> puts the -static flag between ccache and gcc.
50
51Thanks for the bug report, and especially for providing an example to
52reproduce it!
53
54> 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
55
56Confirmed. Fixed as below, committed, put you in THANKS.
57
58Cheers,
59Ralf
60
612008-04-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
62
63 Fix regression over 1.5.26 with ccache $CC -all-static.
64 * libltdl/config/ltmain.m4sh (func_mode_link): Add
65 $link_static_flag to compile_command and link_command only
66 later, instead of right after a possible compiler wrapper.
67 * tests/static.at (ccache -all-static): New test.
68 * THANKS: Update.
69 Report by Richard Purdie.
70
71diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
72index ff1e50d..ac334dc 100644
73--- a/libltdl/config/ltmain.m4sh
74+++ b/libltdl/config/ltmain.m4sh
75@@ -3160,9 +3160,6 @@ func_mode_link ()
76 fi
77 if test -n "$link_static_flag"; then
78 dlopen_self=$dlopen_self_static
79- # See comment for -static flag below, for more details.
80- func_append compile_command " $link_static_flag"
81- func_append finalize_command " $link_static_flag"
82 fi
83 prefer_static_libs=yes
84 ;;
85@@ -3450,7 +3447,11 @@ func_mode_link ()
86
87 case $arg in
88 -all-static)
89- # The effects of -all-static are defined in a previous loop.
90+ if test -n "$link_static_flag"; then
91+ # See comment for -static flag below, for more details.
92+ func_append compile_command " $link_static_flag"
93+ func_append finalize_command " $link_static_flag"
94+ fi
95 continue
96 ;;
97
98diff --git a/tests/static.at b/tests/static.at
99index 74b1c63..1a51d0d 100644
100--- a/tests/static.at
101+++ b/tests/static.at
102@@ -352,3 +352,26 @@ for withdep in no yes; do
103 done
104
105 AT_CLEANUP
106+
107+
108+AT_SETUP([ccache -all-static])
109+
110+AT_DATA([ccache],
111+[[#! /bin/sh
112+# poor man's ccache clone
113+case $1 in
114+-*) echo "bogus argument: $1" >&2; exit 1 ;;
115+esac
116+exec "$@"
117+]])
118+chmod +x ./ccache
119+
120+AT_DATA([a.c],
121+[[int main(void) { return 0; }
122+]])
123+
124+AT_CHECK([$CC $CPPFLAGS $CFLAGS -c a.c], [], [ignore])
125+AT_CHECK([$LIBTOOL --mode=link --tag=CC ./ccache $CC $CFLAGS $LDFLAGS -all-static a.$OBJEXT -o a],
126+ [], [ignore])
127+
128+AT_CLEANUP
129
diff --git a/meta/packages/libtool/libtool-cross_2.2.2.bb b/meta/packages/libtool/libtool-cross_2.2.2.bb
index 9c0b30ce5c..6175007232 100644
--- a/meta/packages/libtool/libtool-cross_2.2.2.bb
+++ b/meta/packages/libtool/libtool-cross_2.2.2.bb
@@ -1,7 +1,7 @@
1require libtool.inc 1require libtool.inc
2require libtool_${PV}.bb 2require libtool_${PV}.bb
3 3
4PR = "r15" 4PR = "r16"
5PACKAGES = "" 5PACKAGES = ""
6FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" 6FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
7SRC_URI_append = " file://libdir-la.patch;patch=1 \ 7SRC_URI_append = " file://libdir-la.patch;patch=1 \
diff --git a/meta/packages/libtool/libtool-native_2.2.2.bb b/meta/packages/libtool/libtool-native_2.2.2.bb
index 6b5f379318..74d4d1bfc7 100644
--- a/meta/packages/libtool/libtool-native_2.2.2.bb
+++ b/meta/packages/libtool/libtool-native_2.2.2.bb
@@ -1,7 +1,7 @@
1require libtool.inc 1require libtool.inc
2require libtool_${PV}.bb 2require libtool_${PV}.bb
3 3
4PR = "r11" 4PR = "r12"
5FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" 5FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
6SRC_URI_append = " file://libdir-la.patch;patch=1 \ 6SRC_URI_append = " file://libdir-la.patch;patch=1 \
7 file://prefix.patch;patch=1 \ 7 file://prefix.patch;patch=1 \
diff --git a/meta/packages/libtool/libtool_2.2.2.bb b/meta/packages/libtool/libtool_2.2.2.bb
index 05f39fa370..afc3daea48 100644
--- a/meta/packages/libtool/libtool_2.2.2.bb
+++ b/meta/packages/libtool/libtool_2.2.2.bb
@@ -1,8 +1,9 @@
1require libtool.inc 1require libtool.inc
2 2
3PR = "r6" 3PR = "r7"
4 4
5SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ 5SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
6 file://fix_static.patch;patch=1 \
6 file://uclibc.patch;patch=1 \ 7 file://uclibc.patch;patch=1 \
7 file://dolt.m4" 8 file://dolt.m4"
8S = "${WORKDIR}/libtool-${PV}" 9S = "${WORKDIR}/libtool-${PV}"