GNU bug report logs - #47382
runtest doesn't work with Solaris 10 /bin/sh

Previous Next

Package: dejagnu;

Reported by: Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>

Date: Thu, 25 Mar 2021 10:34:01 UTC

Owned by: jcb62281 <at> gmail.com

Severity: normal

Done: Jacob Bachmeyer <jcb62281 <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #49 received at 47382 <at> debbugs.gnu.org (full text, mbox):

From: Jacob Bachmeyer <jcb62281 <at> gmail.com>
To: Rainer Orth <ro <at> CeBiTec.Uni-Bielefeld.DE>
Cc: 47382 <at> debbugs.gnu.org
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
Date: Thu, 15 Apr 2021 23:47:20 -0500
Rainer Orth wrote:
> Jacob Bachmeyer <jcb62281 <at> gmail.com> writes:
>   
>> Rainer Orth wrote:
>>     
>>> It seems this is no wonder:
>>>
>>> expr foo : -
>>>
>>> is not in XPG7/POSIX.1 and the autoconf manual explicitly states that
>>> this is an unportable non-POSIX extension.
>>>       
>> Can you cite exactly where in the Autoconf manual that is mentioned?  
>> The closest that I can find is a recommendation to use `expr X"word" : 
>> 'Xregex'` to handle cases where "word" starts with a dash; here Solaris 
>> 10 is rejecting a case where "word" is "foo".
>>     
>
> Upon re-checking, I seem to have misread the relevant section, sorry.
> The fact remains, however, that XPG7 doesn't list that variant on
>
> https://pubs.opengroup.org/onlinepubs/9699919799/toc.htm
>
> which suggests (together with the behaviour of /usr/xpg6/bin/expr which
> has been certified for XPG conformance AFAIK) that this usage is an
> extension.

By my reading of 
<URL:https://pubs.opengroup.org/onlinepubs/9699919799/utilities/expr.html>, 
"/expr1/ : /expr2/" is a "matching expression", which is explained in 
the next subsection as matching the string /expr1/ against the regular 
expression /expr2/ according to basic regular expression syntax 
explained at 
<URL:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03>, 
where dash ("-") is not listed as a special character, so that usage of 
expr should be equivalent to matching the glob pattern "-*" as the code 
now does.

Wait... while Solaris seems to be incorrectly rejecting that command, 
cases where it *should* match would be exactly the situation the 
Autoconf manual mentions, with `expr --help : -` as one example where 
expr can incorrectly parse the first expression as an option.

There is still a bug somewhere here, either in Solaris expr or the 
Autoconf manual (or both); I am unsure which, but my reading of the 
specs suggest a bug in Solaris which the Autoconf manual should 
mention.  In any case, the incorrect usage in the dejagnu launcher 
script has now been fixed, thanks again for pointing it out.
I encourage you to report the issue as a documentation bug in Autoconf 
once we get this figured out:  either the Autoconf manual does not 
mention an easy pitfall or the Autoconf manual does not mention a bug on 
Solaris that makes an otherwise portable usage nonportable.


-- Jacob




This bug report was last modified 4 years and 44 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.