bug-autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sr #110283] 2.69b on OpenIndiana: many testsuite failures without GNU u


From: Paul Eggert
Subject: [sr #110283] 2.69b on OpenIndiana: many testsuite failures without GNU utilities in $PATH
Date: Sun, 2 Aug 2020 20:49:16 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0

Follow-up Comment #2, sr #110283 (project autoconf):

The ksh93 'rm -f' problem comes from this code introduced in Automake 1.14
(2013):

https://git.savannah.gnu.org/cgit/automake.git/commit/?id=f78b0f0b2741fcdd4e21151758a8a75ddaa8aa17

This causes AM_INIT_AUTOMAKE to error-out immediately if 'rm -f' (with no
arguments) fails. An error-out occurs on OpenIndiana if /usr/xpg4/bin precedes
/usr/bin in your PATH:

eggert@weerd:~/build$ PATH=/usr/bin:/usr/xpg4/bin sh -c 'rm -f'
eggert@weerd:~/build$ PATH=/usr/xpg4/bin:/usr/bin sh -c 'rm -f'
Usage: rm [-cFdfirRuv] file ...

and this occurs because OpenIndiana sh (which is a symlink /bin/i86/ksh93 and
where $KSH_VERSION is "Version JM 93t+ 2010-03-05") has an optimization that
screws up: if /usr/xpg4/bin is early in your PATH the shell optimizes away the
fork/exec to rm and does the rm itself, but the shell does so incorrectly.

I observed a similar problem with ksh93 printf. I worked around the printf bug
here:

https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=3ba414b2c4f599de1a3834b7074c3d47ff746341

However, the OpenIndiana 'rm -f' bug is not so easy to work around, as the 'rm
-f' stuff came from Automake and we'd need to generate a new version of
Automake to work around it. And anyway, tons of packages have used Automake
1.14 or later, and those packages won't build on OpenIndiana anyway if
/usr/xpg4/bin is early in the PATH. I assume OmniOS has similar problems.

I don't know what the OpenIndiana/OmniOS bug-reporting processes is, but I
suggest filing bug reports against their shells, as they have significant
portability problems and they don't conform to current POSIX if /usr/xgp4/bin
is early in the PATH (which is just the opposite of the intent of
/usr/xgp4/bin).

A simple workaround is to build Autoconf with PATH='/usr/bin' (and nothing
else) and use plain 'configure' without messing with CONFIG_SHELL. This avoids
the ksh93 'rm -f' bug. I have done this with Autoconf master and verified that
all tests pass on OpenIndiana and on OmniOS (thanks to Bob Friesenhahn giving
me guest accounts on these platforms).

This should be good enough for OpenIndiana, so I suggest marking this bug
report as Done and closing it.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?110283>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]