diff options
author | Richard Purdie <richard@openedhand.com> | 2008-04-22 21:27:34 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2008-04-22 21:27:34 +0000 |
commit | c79d9c1bba76945a96e44d783531189194018755 (patch) | |
tree | e77928828c1237a2cf52d88e606495b0c848b44b | |
parent | 4f42e4f58a279cb421423eefe976e2e87fbbb48a (diff) | |
download | poky-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.patch | 129 | ||||
-rw-r--r-- | meta/packages/libtool/libtool-cross_2.2.2.bb | 2 | ||||
-rw-r--r-- | meta/packages/libtool/libtool-native_2.2.2.bb | 2 | ||||
-rw-r--r-- | meta/packages/libtool/libtool_2.2.2.bb | 3 |
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 @@ | |||
1 | From Ralf.Wildenhues@gmx.de Tue Apr 22 20:44:16 2008 | ||
2 | Return-Path: <Ralf.Wildenhues@gmx.de> | ||
3 | X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on tim.rpsys.net | ||
4 | X-Spam-Level: | ||
5 | X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham | ||
6 | version=3.2.4 | ||
7 | Received: 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 | ||
10 | Received: 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) | ||
13 | Received: 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 | ||
16 | Received: 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) | ||
19 | Received: 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 | ||
22 | Date: Tue, 22 Apr 2008 21:43:49 +0200 | ||
23 | From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | ||
24 | To: Richard Purdie <rpurdie@rpsys.net>, libtool-patches@gnu.org | ||
25 | Cc: libtool@gnu.org | ||
26 | Subject: Re: libtool 2.2.2, ccache and -all-static | ||
27 | Message-ID: <20080422194348.GE5035@ins.uni-bonn.de> | ||
28 | Mail-Followup-To: Richard Purdie <rpurdie@rpsys.net>, | ||
29 | libtool-patches@gnu.org, libtool@gnu.org | ||
30 | References: <1208860190.5479.8.camel@dax.rpnet.com> | ||
31 | MIME-Version: 1.0 | ||
32 | Content-Type: text/plain; charset=us-ascii | ||
33 | Content-Disposition: inline | ||
34 | In-Reply-To: <1208860190.5479.8.camel@dax.rpnet.com> | ||
35 | Organization: Department of Numerical Simulation, University of Bonn | ||
36 | User-Agent: Mutt/1.5.17+20080114 (2008-01-14) | ||
37 | X-Virus-Scanned: amavisd-new at rpsys.net | ||
38 | X-Evolution-Source: imap://richard@tim.rpsys.net/ | ||
39 | Content-Transfer-Encoding: 8bit | ||
40 | |||
41 | Hi 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 | |||
51 | Thanks for the bug report, and especially for providing an example to | ||
52 | reproduce 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 | |||
56 | Confirmed. Fixed as below, committed, put you in THANKS. | ||
57 | |||
58 | Cheers, | ||
59 | Ralf | ||
60 | |||
61 | 2008-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 | |||
71 | diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh | ||
72 | index 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 | |||
98 | diff --git a/tests/static.at b/tests/static.at | ||
99 | index 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 @@ | |||
1 | require libtool.inc | 1 | require libtool.inc |
2 | require libtool_${PV}.bb | 2 | require libtool_${PV}.bb |
3 | 3 | ||
4 | PR = "r15" | 4 | PR = "r16" |
5 | PACKAGES = "" | 5 | PACKAGES = "" |
6 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" | 6 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" |
7 | SRC_URI_append = " file://libdir-la.patch;patch=1 \ | 7 | SRC_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 @@ | |||
1 | require libtool.inc | 1 | require libtool.inc |
2 | require libtool_${PV}.bb | 2 | require libtool_${PV}.bb |
3 | 3 | ||
4 | PR = "r11" | 4 | PR = "r12" |
5 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" | 5 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}" |
6 | SRC_URI_append = " file://libdir-la.patch;patch=1 \ | 6 | SRC_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 @@ | |||
1 | require libtool.inc | 1 | require libtool.inc |
2 | 2 | ||
3 | PR = "r6" | 3 | PR = "r7" |
4 | 4 | ||
5 | SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ | 5 | SRC_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" |
8 | S = "${WORKDIR}/libtool-${PV}" | 9 | S = "${WORKDIR}/libtool-${PV}" |