diff options
Diffstat (limited to 'meta/packages/libtool/libtool-2.2.2/fix_static.patch')
| -rw-r--r-- | meta/packages/libtool/libtool-2.2.2/fix_static.patch | 129 |
1 files changed, 129 insertions, 0 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 | |||
