X-Loop: help-debbugs@HIDDEN Subject: bug#21309: libtool generates binary data in config.log due to buggy escaping Resent-From: Vincent Lefevre <vincent@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-libtool@HIDDEN Resent-Date: Fri, 21 Aug 2015 01:58:02 +0000 Resent-Message-ID: <handler.21309.B.144012222323986 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 21309 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 21309 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-libtool@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.144012222323986 (code B ref -1); Fri, 21 Aug 2015 01:58:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 Aug 2015 01:57:03 +0000 Received: from localhost ([127.0.0.1]:34018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ZSbZn-0006En-5S for submit <at> debbugs.gnu.org; Thu, 20 Aug 2015 21:57:03 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60376) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <vincent@HIDDEN>) id 1ZSbZl-0006EO-0b for submit <at> debbugs.gnu.org; Thu, 20 Aug 2015 21:57:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <vincent@HIDDEN>) id 1ZSbZh-0001re-Hg for submit <at> debbugs.gnu.org; Thu, 20 Aug 2015 21:57:00 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:35175) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <vincent@HIDDEN>) id 1ZSbZh-0001rX-7t for submit <at> debbugs.gnu.org; Thu, 20 Aug 2015 21:56:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <vincent@HIDDEN>) id 1ZSF5S-0007gR-Ul for bug-libtool@HIDDEN; Wed, 19 Aug 2015 21:56:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <vincent@HIDDEN>) id 1ZSF5P-0000T0-Dx for bug-libtool@HIDDEN; Wed, 19 Aug 2015 21:56:14 -0400 Received: from ioooi.vinc17.net ([92.243.22.117]:51634) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <vincent@HIDDEN>) id 1ZSF5P-0000PS-8W for bug-libtool@HIDDEN; Wed, 19 Aug 2015 21:56:11 -0400 Received: from smtp-zira.vinc17.net (128.119.75.86.rev.sfr.net [86.75.119.128]) by ioooi.vinc17.net (Postfix) with ESMTPSA id 479E812B; Thu, 20 Aug 2015 03:56:02 +0200 (CEST) Received: by zira.vinc17.org (Postfix, from userid 1000) id 19EDDC2000A; Thu, 20 Aug 2015 03:56:02 +0200 (CEST) Date: Thu, 20 Aug 2015 03:56:02 +0200 From: Vincent Lefevre <vincent@HIDDEN> Message-ID: <20150820015602.GC5882@HIDDEN> Mail-Followup-To: Vincent Lefevre <vincent@HIDDEN>, bug-libtool@HIDDEN MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.5.23-6482-vl-r81226 (2015-08-17) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) I've reported the following bug in the Debian BTS: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D796180 but I can reproduce it with the official libtool 2.4.6. When I run "./configure" with MPFR, the generated config.log file contains binary data: configure:9458: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGI= RSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/^A ^B ^B/p' | sed = '/ __gnu_lto/d' \> conftest.nm where ^A and ^B are the ASCII characters of code 1 and 2 respectively. Thus, the "file" utility thinks that this is a binary file, so that "less" + "lesspipe" mangles the file. Rather annoying! The generated "libtool" script contains: global_symbol_pipe=3D"sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\= \)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | sed '= / __gnu_lto/d'" So, I suppose that the binary data come from the \\1 and \\2. --=20 Vincent Lef=E8vre <vincent@HIDDEN> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Vincent Lefevre <vincent@HIDDEN> Subject: bug#21309: Acknowledgement (libtool generates binary data in config.log due to buggy escaping) Message-ID: <handler.21309.B.144012222323986.ack <at> debbugs.gnu.org> References: <20150820015602.GC5882@HIDDEN> X-Gnu-PR-Message: ack 21309 X-Gnu-PR-Package: libtool Reply-To: 21309 <at> debbugs.gnu.org Date: Fri, 21 Aug 2015 01:58:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-libtool@HIDDEN If you wish to submit further information on this problem, please send it to 21309 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 21309: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D21309 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#21309: libtool generates binary data in config.log due to buggy escaping Resent-From: Vincent Lefevre <vincent@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-libtool@HIDDEN Resent-Date: Mon, 08 Feb 2016 18:00:02 +0000 Resent-Message-ID: <handler.21309.B21309.14549543571043 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21309 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 21309 <at> debbugs.gnu.org Received: via spool by 21309-submit <at> debbugs.gnu.org id=B21309.14549543571043 (code B ref 21309); Mon, 08 Feb 2016 18:00:02 +0000 Received: (at 21309) by debbugs.gnu.org; 8 Feb 2016 17:59:17 +0000 Received: from localhost ([127.0.0.1]:60281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1aSq5l-0000Gl-FQ for submit <at> debbugs.gnu.org; Mon, 08 Feb 2016 12:59:17 -0500 Received: from cventin.lip.ens-lyon.fr ([140.77.13.17]:35288) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from <vincent@HIDDEN>) id 1aSq5k-0000Ge-2m for 21309 <at> debbugs.gnu.org; Mon, 08 Feb 2016 12:59:16 -0500 Received: from vlefevre by cventin.lip.ens-lyon.fr with local (Exim 4.86) (envelope-from <vincent@HIDDEN>) id 1aSovX-000236-EQ; Mon, 08 Feb 2016 17:44:39 +0100 Date: Mon, 8 Feb 2016 17:44:39 +0100 From: Vincent Lefevre <vincent@HIDDEN> Message-ID: <20160208164439.GA7769@HIDDEN> References: <20150820015602.GC5882@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150820015602.GC5882@HIDDEN> X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.5.24-6554-vl-r83103 (2016-01-26) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) I actually get these binary data with dash (when setting CONFIG_SHELL=/bin/sh in my environment, where /bin/sh is dash). On 2015-08-20 03:56:02 +0200, Vincent Lefevre wrote: > The generated "libtool" script contains: > > global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | sed '/ __gnu_lto/d'" > > So, I suppose that the binary data come from the \\1 and \\2. The problem is that it yields, for instance: + echo configure:10030: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm With bash: $ echo '\1' | hd 00000000 5c 31 0a |\1.| 00000003 With dash: $ echo '\1' | hd 00000000 01 0a |..| 00000002 POSIX[*] says: if any of the operands contain a <backslash> character, the results are implementation-defined. So, the above code is not portable. [*] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html -- Vincent Lefèvre <vincent@HIDDEN> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
X-Loop: help-debbugs@HIDDEN Subject: bug#21309: libtool generates binary data in config.log due to buggy escaping Resent-From: Vincent Lefevre <vincent@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-libtool@HIDDEN Resent-Date: Tue, 02 Oct 2018 09:13:02 +0000 Resent-Message-ID: <handler.21309.B21309.15384715747179 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21309 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 21309 <at> debbugs.gnu.org Received: via spool by 21309-submit <at> debbugs.gnu.org id=B21309.15384715747179 (code B ref 21309); Tue, 02 Oct 2018 09:13:02 +0000 Received: (at 21309) by debbugs.gnu.org; 2 Oct 2018 09:12:54 +0000 Received: from localhost ([127.0.0.1]:33749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1g7Gje-0001rj-AY for submit <at> debbugs.gnu.org; Tue, 02 Oct 2018 05:12:54 -0400 Received: from cventin.lip.ens-lyon.fr ([140.77.13.17]:38532) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <vincent@HIDDEN>) id 1g7Gjd-0001rc-98 for 21309 <at> debbugs.gnu.org; Tue, 02 Oct 2018 05:12:53 -0400 Received: from vlefevre by cventin.lip.ens-lyon.fr with local (Exim 4.91) (envelope-from <vincent@HIDDEN>) id 1g7Gjc-0003K1-8n; Tue, 02 Oct 2018 11:12:52 +0200 Date: Tue, 2 Oct 2018 11:12:52 +0200 From: Vincent Lefevre <vincent@HIDDEN> Message-ID: <20181002091252.GA15886@HIDDEN> References: <20150820015602.GC5882@HIDDEN> <20160208164439.GA7769@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160208164439.GA7769@HIDDEN> X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.10.1+101 (b181996c) vl-108074 (2018-09-27) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) On 2016-02-08 17:44:39 +0100, Vincent Lefevre wrote: > I actually get these binary data with dash (when setting > CONFIG_SHELL=/bin/sh in my environment, where /bin/sh is dash). > > On 2015-08-20 03:56:02 +0200, Vincent Lefevre wrote: > > The generated "libtool" script contains: > > > > global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | sed '/ __gnu_lto/d'" > > > > So, I suppose that the binary data come from the \\1 and \\2. > > The problem is that it yields, for instance: > > + echo configure:10030: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm More details (with the current MPFR trunk, thus this has changed a bit): [...] + nlist=conftest.nm + eval echo "$as_me":7267: "/usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([A BCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm" + echo configure:7267: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm [...] In libtool.m4, this corresponds to: nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then Thus the problem seems to come from AC_TRY_EVAL, i.e. an autoconf bug. According to https://debbugs.gnu.org/Packages.html, autoconf doesn't use this bug tracker, so that I'm going to report a separate bug for autoconf. -- Vincent Lefèvre <vincent@HIDDEN> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
X-Loop: help-debbugs@HIDDEN Subject: bug#21309: libtool generates binary data in config.log due to buggy escaping Resent-From: Vincent Lefevre <vincent@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-libtool@HIDDEN Resent-Date: Tue, 02 Oct 2018 10:59:02 +0000 Resent-Message-ID: <handler.21309.B21309.153847788825588 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21309 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 21309 <at> debbugs.gnu.org Received: via spool by 21309-submit <at> debbugs.gnu.org id=B21309.153847788825588 (code B ref 21309); Tue, 02 Oct 2018 10:59:02 +0000 Received: (at 21309) by debbugs.gnu.org; 2 Oct 2018 10:58:08 +0000 Received: from localhost ([127.0.0.1]:33834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1g7INU-0006ed-9C for submit <at> debbugs.gnu.org; Tue, 02 Oct 2018 06:58:08 -0400 Received: from cventin.lip.ens-lyon.fr ([140.77.13.17]:38914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <vincent@HIDDEN>) id 1g7INR-0006eQ-RI; Tue, 02 Oct 2018 06:58:06 -0400 Received: from vlefevre by cventin.lip.ens-lyon.fr with local (Exim 4.91) (envelope-from <vincent@HIDDEN>) id 1g7INQ-0007dx-Q5; Tue, 02 Oct 2018 12:58:04 +0200 Date: Tue, 2 Oct 2018 12:58:04 +0200 From: Vincent Lefevre <vincent@HIDDEN> Message-ID: <20181002105804.GB12353@HIDDEN> References: <20150820015602.GC5882@HIDDEN> <20160208164439.GA7769@HIDDEN> <20181002091252.GA15886@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20181002091252.GA15886@HIDDEN> X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.10.1+101 (b181996c) vl-108074 (2018-09-27) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) retitle 21309 libtool should not use the dangerous, undocumented AC_TRY_EVAL macro, currently broken thanks On 2018-10-02 11:12:52 +0200, Vincent Lefevre wrote: > In libtool.m4, this corresponds to: > > nlist=conftest.nm > if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then > > Thus the problem seems to come from AC_TRY_EVAL, i.e. an autoconf bug. I've seen in the autoconf source that AC_TRY_EVAL should not be used: # AC_TRY_EVAL(VARIABLE) # --------------------- # Evaluate $VARIABLE, which should be a valid shell command. # The purpose of this macro is to write "configure:123: command line" # into config.log for every test run. # # The AC_TRY_EVAL and AC_TRY_COMMAND macros are dangerous and # undocumented, and should not be used. # They may be removed or their API changed in a future release. # Autoconf itself no longer uses these two macros; they are present # only for backward compatibility with previous versions of Autoconf. # Not every shell command will work due to problems with eval # and quoting, and the rules for exactly what does work are tricky. # Worse, due to double-expansion during evaluation, arbitrary unintended # shell commands could be executed in some situations. -- Vincent Lefèvre <vincent@HIDDEN> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Received: (at control) by debbugs.gnu.org; 2 Oct 2018 10:58:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 02 06:58:08 2018 Received: from localhost ([127.0.0.1]:33836 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1g7INU-0006ef-J6 for submit <at> debbugs.gnu.org; Tue, 02 Oct 2018 06:58:08 -0400 Received: from cventin.lip.ens-lyon.fr ([140.77.13.17]:38914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <vincent@HIDDEN>) id 1g7INR-0006eQ-RI; Tue, 02 Oct 2018 06:58:06 -0400 Received: from vlefevre by cventin.lip.ens-lyon.fr with local (Exim 4.91) (envelope-from <vincent@HIDDEN>) id 1g7INQ-0007dx-Q5; Tue, 02 Oct 2018 12:58:04 +0200 Date: Tue, 2 Oct 2018 12:58:04 +0200 From: Vincent Lefevre <vincent@HIDDEN> To: 21309 <at> debbugs.gnu.org Subject: Re: libtool generates binary data in config.log due to buggy escaping Message-ID: <20181002105804.GB12353@HIDDEN> References: <20150820015602.GC5882@HIDDEN> <20160208164439.GA7769@HIDDEN> <20181002091252.GA15886@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20181002091252.GA15886@HIDDEN> X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.10.1+101 (b181996c) vl-108074 (2018-09-27) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) retitle 21309 libtool should not use the dangerous, undocumented AC_TRY_EVAL macro, currently broken thanks On 2018-10-02 11:12:52 +0200, Vincent Lefevre wrote: > In libtool.m4, this corresponds to: > > nlist=conftest.nm > if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then > > Thus the problem seems to come from AC_TRY_EVAL, i.e. an autoconf bug. I've seen in the autoconf source that AC_TRY_EVAL should not be used: # AC_TRY_EVAL(VARIABLE) # --------------------- # Evaluate $VARIABLE, which should be a valid shell command. # The purpose of this macro is to write "configure:123: command line" # into config.log for every test run. # # The AC_TRY_EVAL and AC_TRY_COMMAND macros are dangerous and # undocumented, and should not be used. # They may be removed or their API changed in a future release. # Autoconf itself no longer uses these two macros; they are present # only for backward compatibility with previous versions of Autoconf. # Not every shell command will work due to problems with eval # and quoting, and the rules for exactly what does work are tricky. # Worse, due to double-expansion during evaluation, arbitrary unintended # shell commands could be executed in some situations. -- Vincent Lefèvre <vincent@HIDDEN> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
X-Loop: help-debbugs@HIDDEN Subject: bug#21309: libtool generates binary data in config.log due to buggy escaping Resent-From: Vincent Lefevre <vincent@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-libtool@HIDDEN Resent-Date: Tue, 02 Oct 2018 13:47:01 +0000 Resent-Message-ID: <handler.21309.B21309.153848798525022 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21309 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 21309 <at> debbugs.gnu.org Received: via spool by 21309-submit <at> debbugs.gnu.org id=B21309.153848798525022 (code B ref 21309); Tue, 02 Oct 2018 13:47:01 +0000 Received: (at 21309) by debbugs.gnu.org; 2 Oct 2018 13:46:25 +0000 Received: from localhost ([127.0.0.1]:33923 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1g7L0L-0006VW-1c for submit <at> debbugs.gnu.org; Tue, 02 Oct 2018 09:46:25 -0400 Received: from cventin.lip.ens-lyon.fr ([140.77.13.17]:39236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <vincent@HIDDEN>) id 1g7L0I-0006VM-E6 for 21309 <at> debbugs.gnu.org; Tue, 02 Oct 2018 09:46:22 -0400 Received: from vlefevre by cventin.lip.ens-lyon.fr with local (Exim 4.91) (envelope-from <vincent@HIDDEN>) id 1g7L0H-0001oK-Dl; Tue, 02 Oct 2018 15:46:21 +0200 Date: Tue, 2 Oct 2018 15:46:21 +0200 From: Vincent Lefevre <vincent@HIDDEN> Message-ID: <20181002134621.GA6876@HIDDEN> References: <20150820015602.GC5882@HIDDEN> <20160208164439.GA7769@HIDDEN> <20181002091252.GA15886@HIDDEN> <20181002105804.GB12353@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="OXfL5xGRrasGEqWY" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20181002105804.GB12353@HIDDEN> X-Mailer-Info: https://www.vinc17.net/mutt/ User-Agent: Mutt/1.10.1+101 (b181996c) vl-108074 (2018-09-27) X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --OXfL5xGRrasGEqWY Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit On 2018-10-02 12:58:04 +0200, Vincent Lefevre wrote: > I've seen in the autoconf source that AC_TRY_EVAL should not be used: > > # AC_TRY_EVAL(VARIABLE) > # --------------------- > # Evaluate $VARIABLE, which should be a valid shell command. > # The purpose of this macro is to write "configure:123: command line" > # into config.log for every test run. > # > # The AC_TRY_EVAL and AC_TRY_COMMAND macros are dangerous and > # undocumented, and should not be used. > # They may be removed or their API changed in a future release. > # Autoconf itself no longer uses these two macros; they are present > # only for backward compatibility with previous versions of Autoconf. > # Not every shell command will work due to problems with eval > # and quoting, and the rules for exactly what does work are tricky. > # Worse, due to double-expansion during evaluation, arbitrary unintended > # shell commands could be executed in some situations. I've attached a patch that replaces the AC_TRY_EVAL occurrence that generated the binary data. This is a patch against the Debian package (libtool 2.4.6-4). I've tested it with MPFR and it seems to work fine. The other AC_TRY_EVAL occurrences do not cause any problem here, but should also be replaced in the future. For the reference, my Debian bug report (clone of 796180, which is now about autoconf): https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910076 -- Vincent Lefèvre <vincent@HIDDEN> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon) --OXfL5xGRrasGEqWY Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="libtool-eval-nm.patch" Description: Avoid a broken AC_TRY_EVAL macro As said in the Autoconf source, the AC_TRY_EVAL macro is dangerous and undocumented, and should not be used. In particular, the one related to nm yields binary data in the config.log file with dash, where "echo \\1" (echo with the argument \1) produces the control character ^A instead of the usual \1 with most shells (POSIX says that the result is implementation-defined). See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910076 This patch attempts to replace this AC_TRY_EVAL occurrence by code with similar behavior, but using $ECHO instead of echo in order to avoid the backslash issue. Author: Vincent Lefevre <vincent@HIDDEN> Last-Updated: 2018-10-02 Index: libtool-2.4.6/m4/libtool.m4 =================================================================== --- libtool-2.4.6.orig/m4/libtool.m4 +++ libtool-2.4.6/m4/libtool.m4 @@ -4063,7 +4063,8 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" --OXfL5xGRrasGEqWY--
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.