--- Begin Message ---
- From: Eric Blake <ebb9 at byu dot net>
- To: libtool-patches at gnu dot org
- Date: Thu, 11 Oct 2007 20:30:30 +0000 (UTC)
- Subject: fix breakage with m4_append semantics change
- Approved: news@gmane.org
- Archived-at: <http://permalink.gmane.org/gmane.comp.gnu.libtool.patches/7857>
- Envelope-to: gnu-libtool-patches@m.gmane.org
- Newsgroups: gmane.comp.gnu.libtool.patches
- Original-lines: 107
- Original-received: from lists.gnu.org ([199.232.76.165])by lo.gmane.org with esmtp (Exim 4.50)id 1Ig4rf-0004D2-Fafor gnu-libtool-patches@m.gmane.org; Thu, 11 Oct 2007 22:42:39 +0200
- Original-received: from localhost ([127.0.0.1] helo=lists.gnu.org)by lists.gnu.org with esmtp (Exim 4.43)id 1Ig4rZ-0007eG-GKfor gnu-libtool-patches@m.gmane.org; Thu, 11 Oct 2007 16:42:33 -0400
- Original-received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)id 1Ig4rP-0007e1-Hgfor libtool-patches@gnu.org; Thu, 11 Oct 2007 16:42:23 -0400
- Original-received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)id 1Ig4rK-0007cm-9kfor libtool-patches@gnu.org; Thu, 11 Oct 2007 16:42:22 -0400
- Original-received: from [199.232.76.173] (helo=monty-python.gnu.org)by lists.gnu.org with esmtp (Exim 4.43) id 1Ig4rK-0007cQ-0Ufor libtool-patches@gnu.org; Thu, 11 Oct 2007 16:42:18 -0400
- Original-received: from main.gmane.org ([80.91.229.2] helo=ciao.gmane.org)by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32)(Exim 4.60) (envelope-from <gnu-libtool-patches@m.gmane.org>)id 1Ig4rH-0001Tx-Hvfor libtool-patches@gnu.org; Thu, 11 Oct 2007 16:42:16 -0400
- Original-received: from list by ciao.gmane.org with local (Exim 4.43)id 1Ig4lV-0003yR-Qwfor libtool-patches@gnu.org; Thu, 11 Oct 2007 20:36:17 +0000
- Original-received: from EBLAKE.csw.l-3com.com ([128.170.36.124])by main.gmane.org with esmtp (Gmexim 0.1 (Debian))id 1AlnuQ-0007hv-00for <libtool-patches@gnu.org>; Thu, 11 Oct 2007 20:36:17 +0000
- Original-received: from ebb9 by EBLAKE.csw.l-3com.com with local (Gmexim 0.1 (Debian))id 1AlnuQ-0007hv-00for <libtool-patches@gnu.org>; Thu, 11 Oct 2007 20:36:17 +0000
- Original-x-complaints-to: usenet@sea.gmane.org
- Original-x-from: libtool-patches-bounces+gnu-libtool-patches=m.gmane.org@gnu.org Thu Oct 11 22:42:40 2007
- Xref: news.gmane.org gmane.comp.gnu.libtool.patches:7857
I noticed the following bug in m4sugar:
m4_debugmode([q])dnl quoted dumpdef is easier to read
m4_define([a],[A])
m4_append_uniq([foo],[-],[a])
m4_append_uniq([foo],[-],[a])
m4_append_uniq([bar],[-],[a])
m4_append_uniq([bar],[~],[a])
m4_append_uniq([bar],[-],[a])
m4_dumpdef([foo],[bar])
bar: [-A~A-]
foo: [-]
Oops - we managed to append [-] to bar twice, because m4_append_uniq was using
[[a]] as its separator, while m4_append was using only [a].
This is now fixed in autoconf, but breaks libtool without this patch.
Fortunately, only HEAD is affected. This patch allows libtool to continue
working with autoconf 2.61, without tripping on the semantic change in 2.62.
OK to apply? (Also, if this patch is approved, I will do a separate followon
patch to kill the trailing whitespace in these two files).
2007-10-11 Eric Blake <ebb9@byu.net>
Deal with Autoconf 2.62's semantic change in m4_append.
* libltdl/m4/ltsugar.m4 (lt_append): Replace broken versions of
m4_append.
(lt_if_append_uniq): Don't require separator to be overquoted, and
avoid broken m4_append.
* libltdl/m4/libtool.m4 (_LT_DECL): Don't overquote separator.
Index: libltdl/m4/libtool.m4
===================================================================
RCS file: /sources/libtool/libtool/libltdl/m4/libtool.m4,v
retrieving revision 1.118
diff -u -p -r1.118 libtool.m4
--- libltdl/m4/libtool.m4 11 Oct 2007 17:23:33 -0000 1.118
+++ libltdl/m4/libtool.m4 11 Oct 2007 20:25:56 -0000
@@ -318,7 +318,7 @@ m4_bpatsubst([m4_bpatsubst([$1], [^ *],
# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
# VARNAME. Any other value will be used directly.
m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [[, ]],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
[lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
[m4_ifval([$1], [$1], [$2])])
lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
Index: libltdl/m4/ltsugar.m4
===================================================================
RCS file: /sources/libtool/libtool/libltdl/m4/ltsugar.m4,v
retrieving revision 1.4
diff -u -p -r1.4 ltsugar.m4
--- libltdl/m4/ltsugar.m4 25 Mar 2007 12:12:43 -0000 1.4
+++ libltdl/m4/ltsugar.m4 11 Oct 2007 20:25:56 -0000
@@ -1,13 +1,13 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 3 ltsugar.m4
+# serial 4 ltsugar.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
@@ -46,6 +46,20 @@ m4_define([lt_cdr],
m4_define([lt_unquote], $1)
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded. No SEPARATOR is
+# output if MACRO-NAME was previously undefined (different than defined
+# and empty).
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4 mistakenly expanded SEPARATOR.
+m4_define([lt_append],
+[m4_define([$1],
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
# ----------------------------------------------------------
# Produce a SEP delimited list of all paired combinations of elements of
@@ -67,10 +81,10 @@ m4_define([lt_combine],
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
m4_define([lt_if_append_uniq],
[m4_ifdef([$1],
- [m4_bmatch($3[]m4_defn([$1])$3, $3[]m4_re_escape([$2])$3,
- [$5],
- [m4_append([$1], [$2], [$3])$4])],
- [m4_append([$1], [$2], [$3])$4])])
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [lt_append([$1], [$2], [$3])$4],
+ [$5])],
+ [lt_append([$1], [$2], [$3])$4])])
# lt_dict_add(DICT, KEY, VALUE)
--- End Message ---