GNU bug report logs -
#21309
libtool should not use the dangerous, undocumented AC_TRY_EVAL macro, currently broken
Previous Next
Reported by: Vincent Lefevre <vincent <at> vinc17.net>
Date: Fri, 21 Aug 2015 01:58:02 UTC
Severity: normal
Done: Ileana Dumitrescu <ileanadumitrescu95 <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 21309 <at> debbugs.gnu.org (full text, mbox):
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 <at> vinc17.net> - 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)
This bug report was last modified 219 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.