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

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: dejagnu; Reported by: Rainer Orth <ro@HIDDEN>; Owned by: jcb62281@HIDDEN; dated Thu, 25 Mar 2021 10:34:01 UTC; Maintainer for dejagnu is bug-dejagnu@HIDDEN.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 16 Apr 2021 21:51:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 16 17:51:08 2021
Received: from localhost ([127.0.0.1]:41887 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXWMl-0005kJ-Kw
	for submit <at> debbugs.gnu.org; Fri, 16 Apr 2021 17:51:07 -0400
Received: from mail-ot1-f41.google.com ([209.85.210.41]:36561)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lXWMk-0005jp-7u
 for 47382 <at> debbugs.gnu.org; Fri, 16 Apr 2021 17:51:07 -0400
Received: by mail-ot1-f41.google.com with SMTP id
 i16-20020a9d68d00000b0290286edfdfe9eso16431773oto.3
 for <47382 <at> debbugs.gnu.org>; Fri, 16 Apr 2021 14:51:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=yx68kE1zCSJd7LpCY712BUXUgoSjrIiyH1AGLlO+muU=;
 b=pAU69R7uv5vxjMDM4mREs1Ck/45xgegq7gBsss23fRFCJeOlmlqvEU9NzJwQYTHQT0
 wks33NVEhF1R4SuW9pNUPpXFVo3T0P/gH4ooodMa/pG7zhP9v6eC3l52D3DTVWuU/LOU
 Kx+5FIzaZh9lvq5Xvdsi9dZcKPWMfhZdqM6n9TA6L+ROevZL9Ay8qAM79q60Y5xoi2od
 I/zlEVehyXGz2Sr1uFas6gp7phHozunst0wWgf0HU1Ek4mEXNg3yCXrvW58uiD4tC2ai
 +eLGKQ20z2wcCB4Ayam6B8PyxOU6pBkvhlVRxUXNKaaMQZv90A9VVBKz7grc1iuAz+uH
 dhJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=yx68kE1zCSJd7LpCY712BUXUgoSjrIiyH1AGLlO+muU=;
 b=H+zOgLkRYaslJInO7ajY4i3h+vw22B+4/MTXe7/F9WzoT4Sn8EWMGjqYSCo7YcvshW
 eCf69lxAoN6txJqL4CxZV621W1Gfxw80ZyqMrn4I29zN3LJbdEz8Ce5mOiW2N5LLRaiu
 4y91krURRoR0vDfdbQiuMAkx2a9XdECKtRt953B7ko+yoC8AjyropYetOdsC1akYq9F0
 9aMaVvuUKNvOHZMl5uB4IoDx0ILS63auYRPrb1XYD+c6/Eg6abl+0yOHVZYg9lBPFLa2
 awYMDHLeFPLj4PwuMSFookXyOMoGmhYA5UNiw/gCctyp0ghMqdgeC7cANnKypwiL+grX
 2N3w==
X-Gm-Message-State: AOAM5336olg8jUsiogE+JIkYqHR2yum5L/7KFYBcCw8MULDFmhS4qo6z
 197OMNK+9Z7gMYxXt2CyqzeBeXbqfnk=
X-Google-Smtp-Source: ABdhPJxxsQG84RBTLdVbyVVSJJUhJZ0DFml1TpAB3/8tiSjxqIA97c40fE16tFqLsDeoI+Mxp+lC3w==
X-Received: by 2002:a9d:77c3:: with SMTP id w3mr5309632otl.43.1618609860513;
 Fri, 16 Apr 2021 14:51:00 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id 3sm1649480otw.58.2021.04.16.14.50.59
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Fri, 16 Apr 2021 14:51:00 -0700 (PDT)
Message-ID: <607A06C2.308@HIDDEN>
Date: Fri, 16 Apr 2021 16:50:58 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<60665E3F.4080100@HIDDEN>
 <yddfszrhbj0.fsf@HIDDEN>
In-Reply-To: <yddfszrhbj0.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

I have had time to address the rest of these:

Rainer Orth wrote:
> One can use \{0,1\} instead, but I cannot tell for certain how portable
> that is:
>
> diff --git a/dejagnu b/dejagnu
> --- a/dejagnu
> +++ b/dejagnu
> @@ -147,7 +147,7 @@ if $want_version ; then
>  fi
>  
>  # Remove any leading autoconf platform prefix and the "dejagnu" prefix.
> -command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
> +command=`basename "$0" | sed -e 's/^.*-\{0,1\}dejagnu-\{0,1\}//'`
>  
>  while expr $# \> 0 > /dev/null
>  do
>   

Fixed in commit cc4d2e41f5d72be55e2b506f45fa052e1b3d410b; according to 
the latest Autoconf manual, basename is not portable either!

8<----
diff --git a/dejagnu b/dejagnu
index ece4e09..c38dd4d 100755
--- a/dejagnu
+++ b/dejagnu
@@ -147,7 +147,20 @@ if $want_version ; then
 fi
 
 # Remove any leading autoconf platform prefix and the "dejagnu" prefix.
-command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
+# command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
+# The above simple solution is not portable, so we use Awk:
+command=`echo "$0" | awk 'BEGIN { FS = "/" }
+{   OFS = FS = "-"
+    $0 = $NF
+    for (i = 1; i <= NF; i++) if ($i ~ /dejagnu/) break;
+    for (j = 1; j <= (NF - i); j++) $j = $(j+i);
+    NF = j - 1
+    print }'`
+# Initially splitting on "/", then assigning the last field to the record
+# performs the role of basename.  Splitting on "-" and searching for a
+# field matching /dejagnu/ identifies the other prefixes, and the second
+# loop removes the "dejagnu" prefix and everything before it.  The record
+# is then truncated, printed, and thereby returned to the shell.
 
 while expr $# \> 0 > /dev/null
 do
8<----


> With that fixed I ran into:
>
> Found subcommand foo with variants:  tcl sh
> grep: illegal option -- q
> Usage: grep -hblcnsviw pattern file . . .
> Selected variant tcl
>
> grep -q isn't portable, too, also documented in the Autoconf manual:
>
> Some of the options required by Posix are not portable in practice.
> Don't use @samp{grep -q} to suppress output, because traditional @command{grep}
> implementations (e.g., Solaris) do not support @option{-q}.
>   

Fixed in commits 84c903914b49e5051f116b7a1512ee6d962d71bc (first) and 
e2fa0bcf54e2bb05106be1ce22a73de4f7381444 (second).  Splitting this also 
allowed for neatly cleaning up the rest of the help display code in the 
second commit.

8<----
diff --git a/dejagnu b/dejagnu
index c38dd4d..57767b1 100755
--- a/dejagnu
+++ b/dejagnu
@@ -248,11 +248,10 @@ if $have_gawk ; then
 fi
 # is "awk" actually GNU Awk?
 if $have_awk ; then
-    if "$awkbin" --version | sed 1q | grep -qi 'GNU Awk' ; then
-       have_gawk_as_awk=true
-    else
-       have_gawk_as_awk=false
-    fi
+    case `"$awkbin" --version 2>&1 | sed 1q` in
+       *'GNU Awk'*)    have_gawk_as_awk=true   ;;
+       *)              have_gawk_as_awk=false  ;;
+    esac
 fi
 if expr "$verbose" \> 2 > /dev/null ; then
     if $have_awk ; then
8<----


8<----
diff --git a/dejagnu b/dejagnu
index 57767b1..d323a62 100755
--- a/dejagnu
+++ b/dejagnu
@@ -418,21 +418,15 @@ if $want_help ; then
        echo ERROR: file "'$help_file'" is not readable
        exit 2
     fi
-    if grep -q '#help' "$help_file" \
-       && grep -q '#end' "$help_file"; then : ; else
+    if awk '/#help$/ { pfxlen = length($0) - 4 }
+           pfxlen && substr($0, pfxlen) == "#end" { exit 1 }
+          ' "$help_file" ; then
        echo ERROR: file "'$help_file'" does not contain a help message
        exit 2
     fi
-    help_prefix_pat=`grep '#help' "$help_file" \
-       | sed -e 's/#help.*$//' -e '1q' | tr '[:print:][:blank:]' .`
-    if expr "$verbose" \> 1 > /dev/null ; then
-       echo Extracting help from "'$help_file'" with prefix "'$help_prefix_pat'
-    fi
-    sed -n < "$help_file" \
-       -e '1,/#help/d' \
-       -e '/^'"$help_prefix_pat"'#end/q' \
-       -e 's/^'"$help_prefix_pat"'//;p'
-    exit 0
+    exec awk '/#help$/ { pfxlen = length($0) - 4 }
+             pfxlen && substr($0, pfxlen) == "#end" { exit 0 }
+             pfxlen { print substr($0, pfxlen) }' "$help_file"
 fi
 
 if test -z "$command" ; then
8<----

> Now I'm down to
>
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/command.exp ...
> FAIL: dejagnu --help works
> FAIL: dejagnu foo --help works if shell variant selected
>
> This only occurs when running runtest --tool launcher manually, but
> works with make check.
>   

Please try the revised help support above; I suspect that there may have 
been other issues.  Working with make check but not directly invoked 
runtest is ... strange.


-- Jacob





Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 16 Apr 2021 05:01:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 16 01:01:57 2021
Received: from localhost ([127.0.0.1]:39868 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXGc9-0007Ib-50
	for submit <at> debbugs.gnu.org; Fri, 16 Apr 2021 01:01:57 -0400
Received: from mail-ot1-f44.google.com ([209.85.210.44]:46818)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lXGc5-0007IN-Q2
 for 47382 <at> debbugs.gnu.org; Fri, 16 Apr 2021 01:01:56 -0400
Received: by mail-ot1-f44.google.com with SMTP id
 d3-20020a9d29030000b029027e8019067fso22788534otb.13
 for <47382 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 22:01:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=i9hJYBhAoi3Lp+6m/QP5MkYtKjMaXJwr3JBYW40VQ78=;
 b=NRCcntKwkHRcBC6RCFx+lWID2CBQlqRuE2YHi8exVcEqeJQwcOsjic/uGg1gtGaM+2
 E31h8TgjXabA4nnOIS4xHdnOO3X0B1nEz5Y+KssFMIvRVJUBt2XeKz2i0b774mZWWVmV
 YdXyhMThf7ZKorwW7neplGtyUPEuSN6cHJ4f0B/FaofNG0DKWvj5q6L+704G2l7J5Wcd
 VaY9p6bIRxHq0olqnbpvq7lCOCiYuFUWquE8AqenNGrmLgVKqME6fyTQk9Dqtjej5Jct
 +9wSevphg+iaZYLlzsHuj3N7SRZhiG6lNj0O8pnroFCCBHBnsZ/Tni+HRzxyKJ8EgZB4
 uoJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=i9hJYBhAoi3Lp+6m/QP5MkYtKjMaXJwr3JBYW40VQ78=;
 b=mQwZmX+Ism+8Hg5FKTIbHXCKZUWf4l2YsDnVOi4DbnQA4i4y/ppjtrHWLNhViEUJeH
 imu6TOFBhFPsJo138Ujn/3nFy50VeklpbGzNwSyOcWcp4VzpWng8FB2I2NXpR8KWzyKD
 rnHjPsietIMeIO8CnKYCEESuqHylDiMkb8nXzUXaXM/iHmcpc3909+ICHYr1OlotpuNU
 vH2azx7NyONuEOWW2wHET7wTKNfdE3VUAyotQaBGN6IOhBPaYUSnEvR3CGqis/PJtdhC
 0iKwsFyWz9z2GIFjM49s7o+uK9Bs3MzMJP0odedL4euDiUAuBwz64LrdrCWevx7Z224R
 grMQ==
X-Gm-Message-State: AOAM533tDWktjisiocb1GLObnoYd84ka8J7J5+PkvaakzKkXR1OMVXFH
 9A8vbVFf1K36vcW0k6gOns4=
X-Google-Smtp-Source: ABdhPJzF8ruF80jrIwB4MUD9PpGF/EUAJ2zPYSd4yxd7MUW7R4WmgO/t3W3J2YE8Iyaby+hGFmRxLg==
X-Received: by 2002:a9d:24e6:: with SMTP id z93mr2348504ota.197.1618549308236; 
 Thu, 15 Apr 2021 22:01:48 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id p11sm1177540oti.53.2021.04.15.22.01.46
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 15 Apr 2021 22:01:47 -0700 (PDT)
Message-ID: <60791A39.5060501@HIDDEN>
Date: Fri, 16 Apr 2021 00:01:45 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh (oops,
 forgot patch...)
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<60665E3F.4080100@HIDDEN>
 <yddfszrhbj0.fsf@HIDDEN>
In-Reply-To: <yddfszrhbj0.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/help.exp ...
> ERROR: The 'man' command in Solaris does not work in the source tree.
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/interp.exp ...
> FAIL: have no Awk
> FAIL: have no GNU Awk
> FAIL: have no Tcl
> FAIL: have no Expect
>
> Running "env AWK=bogus GAWK=bogus /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/dejagnu --DGTimpl awk" ...
> child process exited abnormally
> FAIL: have no Awk
>
> Those FAILs happen because interp.exp expects exitcode 1 while we get
> 255 instead.  The autoconf manual documents this, too:
>
> Don't expect @command{false} to exit with status 1: in native
> Solaris @file{/bin/false} exits with status 255.
>   

Fixed in commit 9539a1e2ffe8506b92bfcb4363c767e4bc6a0700:

8<----
diff --git a/dejagnu b/dejagnu
index 9f6ae4b..ece4e09 100755
--- a/dejagnu
+++ b/dejagnu
@@ -426,13 +426,13 @@ fi
 if test -z "$command" ; then
     if test -n "$override_ext" ; then
        case $selected_ext in
-           awk)        $have_awk;      exit $? ;;
-           bash)       $have_bash;     exit $? ;;
-           exp)        $have_expect;   exit $? ;;
-           gawk)       $have_gawk;     exit $? ;;
-           tcl)        $have_tcl;      exit $? ;;
-           sh)         $have_sh;       exit $? ;;
-           *)                          exit  2 ;;
+           awk)    if $have_awk;       then exit 0; else exit 1; fi ;;
+           bash)   if $have_bash;      then exit 0; else exit 1; fi ;;
+           exp)    if $have_expect;    then exit 0; else exit 1; fi ;;
+           gawk)   if $have_gawk;      then exit 0; else exit 1; fi ;;
+           tcl)    if $have_tcl;       then exit 0; else exit 1; fi ;;
+           sh)     if $have_sh;        then exit 0; else exit 1; fi ;;
+           *)      exit 2 ;;
        esac
     else
        echo ERROR: no command given
8<----


That code did look suspiciously clever when I wrote it...


-- Jacob




Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 16 Apr 2021 04:47:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 16 00:47:29 2021
Received: from localhost ([127.0.0.1]:39842 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXGO8-0006tl-Mv
	for submit <at> debbugs.gnu.org; Fri, 16 Apr 2021 00:47:28 -0400
Received: from mail-oi1-f169.google.com ([209.85.167.169]:44628)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lXGO7-0006tZ-Ec
 for 47382 <at> debbugs.gnu.org; Fri, 16 Apr 2021 00:47:27 -0400
Received: by mail-oi1-f169.google.com with SMTP id e66so11350560oif.11
 for <47382 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 21:47:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=nM2UaFdozMF8HvV8H3nGmcvqjFAYtNNmaEBrRn3JrhY=;
 b=PcrTVl5hHGo0ufUFxtpiCn/F8E9zElv41YHxU8WbSGDcN1k99NXmbkLGMm7xqv0rDv
 lnkGJW066uxA5dgdlrc6NyWLPZKwQPwC7DjRrBlwyXt3+6Y5LKqPQ6fWI1YpUkujZJvA
 8gSYMRT/4Wsnbu08iRFU0XhRlDlWUJ+gA6E1c9YG/+m6nFzZNgIyGj5Ojjl7JJ6tiw30
 1v5Z/vRKaSkYlEPeFSNcAiABw9pIp9HI3vxmC58c4QtXJsxJ6mPrHdYQuULTvK3xPZ7v
 zR8gTtsINnj1/L5w+lSMNdJmgX6Spi32U4DEVoiwaonfEIFg1d0IRi6986RkLXe4KYIT
 8GMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=nM2UaFdozMF8HvV8H3nGmcvqjFAYtNNmaEBrRn3JrhY=;
 b=r/hlK7KOF4siAsFmmRxAWhXhm2Bzjpx7gZBz5FFMbDH5d7RgAphuxuobblMlHV41bD
 2XGyFD0w6/g/y3PKkqkTycOxDBvuFgv6/MXB/QKXZhaD9xtnDDcQpicVZ0G5P1XYYg+D
 wZPa4bJOSEKsK0r3X1ub+3E1OpJj7G7tWdLS8eC1emAnUaE4hRlpNvCQyZBUz2Igwa4q
 2N0vKDR1ZswZXaMo/VBACRWOFB4txaohLP2+SCE5mPquc94+4Ksff6PDRU2LkeNlUkDW
 gUiylSHyjUK/VfY0mYGtEhb1iktsAU1KmFm4zTevNqpqKej6nQ7WqGT/q9m+q96cQEcB
 /OCw==
X-Gm-Message-State: AOAM530W9rp2eDWKsQ2O6Je93l/YFPKkNbYhEWoMiBbqWeC9EKAvDEdi
 cNJOaeTdY4jdIZWL0j65Sdu1ALaJooc=
X-Google-Smtp-Source: ABdhPJxZPY4bLOGTBoS4P859FyMZwD/vZxxs1GZ2ZJfMqxiGRRY9R1DEYhCXsWha2YTx9dt4SVlD4w==
X-Received: by 2002:aca:1312:: with SMTP id e18mr5105710oii.153.1618548441933; 
 Thu, 15 Apr 2021 21:47:21 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id d22sm1138982otq.50.2021.04.15.21.47.21
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 15 Apr 2021 21:47:21 -0700 (PDT)
Message-ID: <607916D8.4080109@HIDDEN>
Date: Thu, 15 Apr 2021 23:47:20 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<606FCC8D.2090102@HIDDEN>	<yddwnt5gdkj.fsf@HIDDEN>	<6077BA51.6030002@HIDDEN>
 <yddo8efhhid.fsf@HIDDEN>
In-Reply-To: <yddo8efhhid.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> Jacob Bachmeyer <jcb62281@HIDDEN> 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




Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 16 Apr 2021 04:46:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 16 00:46:47 2021
Received: from localhost ([127.0.0.1]:39837 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXGNT-0006sK-0F
	for submit <at> debbugs.gnu.org; Fri, 16 Apr 2021 00:46:47 -0400
Received: from mail-oi1-f180.google.com ([209.85.167.180]:34349)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lXGNQ-0006rr-IK
 for 47382 <at> debbugs.gnu.org; Fri, 16 Apr 2021 00:46:45 -0400
Received: by mail-oi1-f180.google.com with SMTP id k18so21726909oik.1
 for <47382 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 21:46:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=VFFl3MMT2N/suoZUmK1iJD7SKn03WV5nI3mROLeIlzQ=;
 b=XETuG6S9AuoHdb7yXjWTBBce6GATfeNymfgn43VgajpVDWiiDec8Xn+/qx88lTphnw
 lDIe0hfmja/aAcdrf2omMWGDYnuy+q+FgVxKCKuvb4vhcIvOBH0enXmtW5AtZIl4g/cq
 hBhIai4RCgLXmKzwmhDBhn+SWBRi7wjkq4Uu8jV4BGchkV3fQVPgkod3ZZQtae/7ML8A
 RkoEekpo0cFkgdyaaxe3mZ2ioNSD5xnOLrmqH7ovfmfExvQD0v+pDOs3tytnmQvEsPr4
 Jp/vba+UjHGpuA2iF1HBeVrrNd0QGuo0T17mt2SYJTZ+BoeBOqNF+rDYzt+YctE+Ueu0
 xp0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=VFFl3MMT2N/suoZUmK1iJD7SKn03WV5nI3mROLeIlzQ=;
 b=fUpcmB0TyIY9ez+TPTObwH9b0gAEYUgdQY1VNVJYGmLjuKije6lFJO3NFGiCOWhDwz
 fwk0O0cXNxsgts3wg6BnzT7YC5ds6Ej8cRBFEq8toOpE2S6wy6LQjZUO7vjG4Uou+I1y
 vwF628PiMI5f+tRV1/fX2FnIWefKYLchyVXb5LDy4hifzEOXG/rhmzdjcw6uGliLH+S+
 NJXfkKOOSSP9kf+sDSad0xVFpcM+OhPse6mC4bA4Bq4RssWCcVgwDFxjsTI5+QaGJ8kN
 szhIpsQAEpweV02pgH9Ms8BiFRN6nx/oepgLafxp8hcRSfDnhNDpmPzNe7fO9RuRv22c
 jxyw==
X-Gm-Message-State: AOAM532atg6CZvR+rL9Nbc6UiWzDL0SR9Scy4FGkkiRYye5RgiqYWKn4
 llIGLTEwbNQ1J6uYfbAta1vMODSo8LU=
X-Google-Smtp-Source: ABdhPJx/XAB1nXA7vyB/qrLVE4vrwCSpi9gMYiHEkFQ81oP2bLz+keAThcnTYKLvDJIAxcJbd99bag==
X-Received: by 2002:aca:3286:: with SMTP id y128mr5170723oiy.145.1618548398784; 
 Thu, 15 Apr 2021 21:46:38 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id j4sm1091043oiw.0.2021.04.15.21.46.38
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 15 Apr 2021 21:46:38 -0700 (PDT)
Message-ID: <607916AD.6010306@HIDDEN>
Date: Thu, 15 Apr 2021 23:46:37 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<60665E3F.4080100@HIDDEN>
 <yddfszrhbj0.fsf@HIDDEN>
In-Reply-To: <yddfszrhbj0.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> Jacob Bachmeyer <jcb62281@HIDDEN> writes:
>
>   
>>> However, there are more errors still:
>>>
>>>                 === launcher Summary ===
>>>
>>> # of expected passes		5
>>> # of unexpected failures	45
>>> # of unsupported tests		2
>>>   
>>>       
>> Can you post the launcher.log file?  The dejagnu script is fairly 
>> simple, and I suspect that I may be able to deduce the causes of those 
>> failures, especially if they are like the "report-card" failure that 
>> follows.
>>     
>
> After the fix for the expr foo : - issue, I've made some progress in
> identifying what's still going wrong:
>   

Many thanks for your efforts.

> I now see
>
> Running "env EXPECT=true TCLSH=true /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/bin/dejagnu foo -v -v" ...
> Verbose level is 2
> Running launcher from /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/bin
> Probing directory /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/share/dejagnu/commands
> Looking for commands in /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/share/dejagnu/commands
> ERROR: could not resolve command dejagnu-foo
> child process exited abnormally
> FAIL: dejagnu foo as Tcl
>
> Comparing sh -x output between Solaris 10 and 11, I found that the
> difference starts in dejagnu at this point:
>
> # Remove any leading autoconf platform prefix and the "dejagnu" prefix.
> command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
>
> * S10 or 11 with /usr/bin/sed:
>
>   command=dejagnu
>
> * S11.3 with /usr/gnu/bin/sed:
>
>   command=
>
> The issue is the Solaris sed vs. GNU sed difference: /usr/bin/sed
> behaves identically between Solaris 10 and 11, however GNU sed isn't
> bundled with Solaris 10.
>
> Solaris sed doesn't support ? in REs (cf. regexp(7)).  The Autoconf
> manual documents
>
> Portable @command{sed} regular expressions should use @samp{\} only to escape
> characters in the string @samp{$()*.0123456789[\^n@{@}}.  For example,
> alternation, @samp{\|}, is common but Posix does not require its
> support, so it should be avoided in portable scripts.  Solaris
> @command{sed} does not support alternation; e.g., @samp{sed '/a\|b/d'}
> deletes only lines that contain the literal string @samp{a|b}.
> Similarly, @samp{\+} and @samp{\?} should be avoided.
>   

At the time I wrote that script, (my first foray into an attempt at 
portable shell) I was using an old Autoconf manual that did not mention 
these issues; I was also trying to avoid using Awk, but DejaGnu 
configure now fails with an error if Awk is not available, which was not 
the case then.

> One can use \{0,1\} instead, but I cannot tell for certain how portable
> that is:
>
> diff --git a/dejagnu b/dejagnu
> --- a/dejagnu
> +++ b/dejagnu
> @@ -147,7 +147,7 @@ if $want_version ; then
>  fi
>  
>  # Remove any leading autoconf platform prefix and the "dejagnu" prefix.
> -command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
> +command=`basename "$0" | sed -e 's/^.*-\{0,1\}dejagnu-\{0,1\}//'`
>  
>  while expr $# \> 0 > /dev/null
>  do
>   

The current Autoconf manual also mentions that basename is not portable; 
I will find a solution, probably using Awk.

> With that fixed I ran into:
>
> Found subcommand foo with variants:  tcl sh
> grep: illegal option -- q
> Usage: grep -hblcnsviw pattern file . . .
> Selected variant tcl
>
> grep -q isn't portable, too, also documented in the Autoconf manual:
>
> Some of the options required by Posix are not portable in practice.
> Don't use @samp{grep -q} to suppress output, because traditional @command{grep}
> implementations (e.g., Solaris) do not support @option{-q}.
>   

Another improvement not in the older copy I used when writing that script.

> Using I/O redirection instead got me way further:
>
> diff --git a/dejagnu b/dejagnu
> --- a/dejagnu
> +++ b/dejagnu
> @@ -235,7 +235,7 @@ if $have_gawk ; then
>  fi
>  # is "awk" actually GNU Awk?
>  if $have_awk ; then
> -    if "$awkbin" --version | sed 1q | grep -qi 'GNU Awk' ; then
> +    if "$awkbin" --version | sed 1q | grep -i 'GNU Awk' > /dev/null; then
>         have_gawk_as_awk=true
>      else
>         have_gawk_as_awk=false
> @@ -406,8 +406,8 @@ if $want_help ; then
>         echo ERROR: file "'$help_file'" is not readable
>         exit 2
>      fi
> -    if grep -q '#help' "$help_file" \
> -       && grep -q '#end' "$help_file"; then : ; else
> +    if grep '#help' "$help_file" > /dev/null \
> +       && grep '#end' "$help_file" > /dev/null; then : ; else
>         echo ERROR: file "'$help_file'" does not contain a help message
>         exit 2
>      fi
>   

The help logic will probably get rewritten to use Awk, and the test for 
GNU Awk is another simple string match.  I think I can improve these a 
bit...

> Now I'm down to
>
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/command.exp ...
> FAIL: dejagnu --help works
> FAIL: dejagnu foo --help works if shell variant selected
>
> This only occurs when running runtest --tool launcher manually, but
> works with make check.
>
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/help.exp ...
> ERROR: The 'man' command in Solaris does not work in the source tree.
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/interp.exp ...
> FAIL: have no Awk
> FAIL: have no GNU Awk
> FAIL: have no Tcl
> FAIL: have no Expect
>
> Running "env AWK=bogus GAWK=bogus /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/dejagnu --DGTimpl awk" ...
> child process exited abnormally
> FAIL: have no Awk
>
> Those FAILs happen because interp.exp expects exitcode 1 while we get
> 255 instead.  The autoconf manual documents this, too:
>
> Don't expect @command{false} to exit with status 1: in native
> Solaris @file{/bin/false} exits with status 255.
>   

That one is in the older Autoconf manual; I just completely overlooked 
it and have fixed it in commit 
9539a1e2ffe8506b92bfcb4363c767e4bc6a0700.  The dejagnu launcher now 
reliably returns code 1 instead of whatever false(1) produces.

>>> 		=== report-card Summary ===
>>>
>>> # of unresolved testcases	2
>>>
>>> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card.all/onetest
>>> .exp ...
>>> spawn /bin/sh -c cd /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card
>>> .all/onetest && exec /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu report-card^
>>> M
>>> expr: syntax error
>>> ERROR: could not resolve command dejagnu-report-card
>>>
>>> There are obviously more hardcoded uses of /bin/sh here and elsewhere,
>>> but I haven't looked for those yet.
>>>       
>> That hardcoded use of /bin/sh only changes directory and execs 
>> $LAUNCHER, which should run with /bin/ksh if you have patched its #! line.
>>
>> The "dejagnu" script is run, but fails to locate the report-card 
>> subcommand.  I would be interested in the output of "/bin/ksh -x 
>> ./dejagnu report-card" in the source directory, assuming that "-x" 
>> produces an execution trace from ksh as it does from bash (... and 
>> likewise for Solaris 10 /bin/sh after applying the patch above to change 
>> the use of the readonly command).  There are two likely candidates I see 
>> for this error:  one is an `expr :` match to detect a leading "-" and 
>> the other is a possibility that `expr $# \> 0` in a while loop test is 
>> somehow being executed as `expr \> 0` under some condition.  Both of 
>> these hypotheses imply unexpected behavior if not outright bugs in 
>> Solaris 10.
>>
>> There is a possibility here that dejagnu may be tickling a bug in 
>> Solaris 10 /bin/ksh and may work with /bin/sh, or may not work with 
>> either of them.
>>     
>
> When I retried this now, the report-card results are good:
>
> 		=== report-card Summary ===
>
> # of expected passes		245

These results are very reassuring:  the report-card tool is written in Awk.


-- Jacob





Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 16 Apr 2021 04:46:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 16 00:46:42 2021
Received: from localhost ([127.0.0.1]:39834 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXGNN-0006s0-Dz
	for submit <at> debbugs.gnu.org; Fri, 16 Apr 2021 00:46:41 -0400
Received: from mail-ot1-f45.google.com ([209.85.210.45]:36582)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lXGNK-0006rh-B7
 for 47382 <at> debbugs.gnu.org; Fri, 16 Apr 2021 00:46:40 -0400
Received: by mail-ot1-f45.google.com with SMTP id
 i16-20020a9d68d00000b0290286edfdfe9eso14056932oto.3
 for <47382 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 21:46:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=MpLOG6MqYEVNpBtyBvi/9Y8dK5wf9yLa+Eq5jDDwx/M=;
 b=gXjjlUqoUXVrN573D/iBIx48nbPaU+6QqUDADumqT98IaO9Y1pyoBJcKkxrJn1fEYA
 NPR+RrM7yCaSBuromeSIfxp1oQmntl1W4J4PtMtCQnWmkeeKU4oLY1RM8gAGLQZufCm7
 lnmRCrN/0nW1zobPGpc1Wg/wTrgfhIuI4lAVvvnxgvfcYt/imuyvP0NlEBodZ4d9BPPN
 Idf1KZ068RcoXOxKD3FllyJefjs02Yub5ASIq1bdpNRRyCCXizjLnEgK6ZMfZElaqDcA
 rHgafQGeMlV2QJk/uQjtshvaDg0ON5ni83JWenTuj/9+7L+9eCWzTFa2gEkJIrOu9zva
 gTPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=MpLOG6MqYEVNpBtyBvi/9Y8dK5wf9yLa+Eq5jDDwx/M=;
 b=q7t+j5WPvkjEUeev+WVuh/wYU6/mCY5I92GS3JUQoynP183ACVvVR0q9ywymkpuCZB
 CZZA34uVyYzrrZR+tw3Ez228J1iWpo9LszrP3zgrQJ7XK6dGe4+Z/gYxNERbGWHtC0Uk
 QFth1XaS9g/vwTIbvEt8O/uBPJlFCTJTHQZ8aX8AEo52odY3vpeXGWcqxYZvCO+MbecG
 YyWfSofXb0eW53306dFs5wsDG4FicFjetObcVTFZcP/s9r5c0BRrDXHZn0bbHYjDHFhw
 33vECdLCKekCTJAjSywGDV0+cDAikqY8OUCbQvL1YWoNYgwfkXgTfjKjHdASl7Z+mkq+
 iIUg==
X-Gm-Message-State: AOAM532IuDpMrclm+y8qrdCqcih4zspUckUe0Jd56E59LluCXQrjJHc8
 mrnNEGashaolPKT8Qo04SsQ=
X-Google-Smtp-Source: ABdhPJwXgLMdwNCYgVr2P8PeJoq8S64qyy23YU5j3rx6S539g3OLDfID0BOVs3PmvWaQSy2lA9khEA==
X-Received: by 2002:a9d:5f19:: with SMTP id f25mr2281789oti.6.1618548392464;
 Thu, 15 Apr 2021 21:46:32 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id c7sm989276oot.42.2021.04.15.21.46.31
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 15 Apr 2021 21:46:31 -0700 (PDT)
Message-ID: <607916A5.4090704@HIDDEN>
Date: Thu, 15 Apr 2021 23:46:29 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<606FCC8D.2090102@HIDDEN>	<ydd1rbdhtlj.fsf@HIDDEN>	<6077BA0B.1000904@HIDDEN>
 <yddsg3rhibg.fsf@HIDDEN>
In-Reply-To: <yddsg3rhibg.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> Jacob Bachmeyer <jcb62281@HIDDEN> writes:
>   
>> [...]
>>     
> [...]
>   
> Maybe (I haven't dug into this in detail) the fact that e.g. the gcc
> testsuite uses the in-gcc-tree config.guess is because site.exp is
> generated at make check time, emitting *_triplet into per-testsuite
> versions of site.exp.
>   

If the reply I have seen on the DejaGnu list so far is correct, that is 
*exactly* what GCC already does, what I intend to do with 
EXTRA_DEJAGNU_SITE_CONFIG for 1.6.3, and what I intend to try to push to 
upstream Automake:  carry the *_triplet values from configure into 
site.exp.  DejaGnu does not run GCC's copy of config.guess, but is given 
the result that configure previously obtained by running it or the value 
that the user provided to configure.

However, DejaGnu will /still/ need to install (and possibly use) 
config.guess because initialization files are optional in DejaGnu, so we 
cannot depend on *_triplet being set in site.exp because site.exp is not 
actually required to exist.  >-<

>> (Aside:  Automake does not necessarily support read-only source trees.  For
>> example, building in an object tree can result in an Info file in the
>> source tree being rebuilt.  I remember seeing this happen while building
>> other GNU releases in the past.)
>>     
>
> Creating new files in the source tree (and failing; gcc has gone to some
> lenghts to avoid this) is one thing; modifying the unpacked sources in
> place is quite another.
>   

I have observed Automake-derived Makefiles rebuilding shipped Info files 
in the past (or complaining that makeinfo is not installed).  I never 
bothered to look into why this happened, but I have seen it happen.

> When you use AC_SUBST as I suggested, that usually takes an
> in-source-tree runtest.exp.in (or some such; you can specify the exact
> file names using AC_CONFIG_FILES) and write the result to the build
> directory.  You just need to make sure that you use the generated file
> during make check and make install, which is easy if the filenames differ.
>   

To compensate for dropping support for the old Cygnus tree layout, we 
now support running DejaGnu directly from a Git checkout; this is 
extremely convenient for development and precludes using AC_SUBST to 
produce runtest.exp from a runtest.exp.in.  (There are also many 
long-standing assumptions in the code about relative paths from 
runtest.exp to other parts of DejaGnu, so runtest.exp needs to be in the 
source tree, or the DejaGnu testsuite will have problems that I really 
do not want to try to fix on a release branch.)

>>> ** If you share the same source tree between several targets, which is
>>>    quite common, you might end up with a shell in #! on a second target
>>>    that may not even exist there.
>>>
>>>   While this could be avoided by making the substitutions to a copy in
>>>   the build tree, the issue vanishes if runtest.exp uses the proper
>>>   shell in the exec.
>>>       
>> For runtest.exp to use the proper shell, it must somehow *get* that
>> information from configure.  So, instead of patching the #! line in 
>>     
>
> As I said, the established convention is to use $CONFIG_SHELL if set and
> fall back to /bin/sh if not.
>   

If I understand correctly, CONFIG_SHELL may no longer be in the 
environment when "make check" is run, although its value will have been 
propagated to the SHELL make variable, but I do not think that Automake 
exports that back to the environment.

>> * Fix the executable permission problem, but leave the NFS shared source
>>   tree issue to twist in the wind.  (bad)
>>
>> * Patch the "exec $config_guess" in runtest.exp, also leaving the NFS
>>   shared source tree issue to twist in the wind. (also bad)
>>
>> * Copy config.guess to the build tree and patch it there for installation.
>>  This should be workable but will break running DejaGnu from a Git checkout
>> on Solaris 10.  I note that this feature is currently broken on Solaris 10
>> anyway due to /bin/sh not being able to run config.guess.  This may also
>> cause a few errors with the DejaGnu testsuite, as the DejaGnu tests would
>> be run with a shell error in the place of a build triplet.  (Wait... why
>> are we not picking up the build system triplet from site.exp if configure
>> has been used?  That would avoid the need to run config.guess in the source
>> directory, at least when building for installation...)
>>     
>
> Seems like an incredibly complicated dance to me

This will be a complicated dance no matter what I do, but I might have a 
simple answer below.

> just to avoid chaning
> the above
>
> exec $config_guess
>
> to
>
> exec $dg_shell $config_guess
>
> and be done with it: no need to modify imported files and working with
> unmodified out-of-tree copies of config.guess at that.
>   

There are a few problems here.  The largest is that the NFS shared 
source tree problem comes back in a different form after installation:  
DejaGnu is installed in an architecture-independent tree 
(/usr/share/dejagnu) so the installed copy cannot depend on results from 
configure that could be valid on some machines in a testing lab and 
wrong on others.  This is the same problem that we get with patching the 
#! line in config.guess.

I was considering getting a proper shell to use from the global 
initialization file, since that could be configured by the testing lab 
operators to check the hostname to determine which shell to use, but 
that would have to wait for the 1.7 release and will not work either:  
the global site.exp is allowed to assume that the *_triplet variables 
have already been set.

This leads to another possibility:  could we simply require that 
CONFIG_SHELL be set in the environment if /bin/sh cannot run 
config.guess?  The main runtest.exp could easily do:

    if { [info exists ::env(CONFIG_SHELL)] } {
        catch { exec $::env(CONFIG_SHELL) $config_guess } ...
    } else {
        catch { exec $config_guess } ...
    }


The only problem I see here would be if it is common to do 
"CONFIG_SHELL=/bin/ksh /path/to/src/configure ..." instead of simply 
"export CONFIG_SHELL=/bin/ksh" in a .login or similar file.  Two 
advantages here are that this preserves the current code path on all 
systems that can use it, and an "elseif" branch to check ::env(SHELL) 
could be easily added as well.  DejaGnu will have to be a bit stricter 
about ensuring that config.guess actually ran and produced usable 
output, to catch the case of CONFIG_SHELL being needed but no longer set 
(or SHELL being tcsh), but this is looking feasible since it does not 
require "customizing" any of the supposedly machine-independent files.

>> If host_triplet and/or build_triplet are set in the init files, such as
>> site.exp, DejaGnu does not bother running config.guess at all.  This 
>> will cover the case of testing DejaGnu itself, and patching the installed
>> copy of config.guess can cover the general case.  I should be able to use
>> EXTRA_DEJAGNU_SITE_CONFIG to handle this for DejaGnu itself, and I will
>> need to consider offering a patch to Automake to add that generally, since
>> transferring build/host/target information through site.exp would probably
>> be useful for most packages.
>>     
>
> Please keep in mind that this needs to continue working with existing
> versions of automake.  As an example, gcc currently uses automake 1.15.1
> and autoconf 2.69 and upgrading either or both is far from trivial,
> certainly not going to be undertaken just to be able a newer version of
> DejaGnu.

This use of EXTRA_DEJAGNU_SITE_CONFIG is for DejaGnu itself and the 
DejaGnu testsuite, to avoid running config.guess when testing DejaGnu 
itself, because user-specified triplets should be carried through.  As 
such, moving that upstream will cause other packages to carry *_triplet 
information through automatically when they move to newer Automake, and 
the EXTRA_DEJAGNU_SITE_CONFIG file added to DejaGnu can be removed when 
DejaGnu *itself* moves to a newer Automake that propagates the *_triplet 
values to site.exp by default.

As one answer to an RFC about this on the DejaGnu mailing list 
mentioned, GCC *already* overrides Automake's rule for site.exp and does 
exactly what I am planning to suggest that upstream Automake should do 
(and a lot more, so they will still need to override Automake's site.exp 
rule).

On the other hand, if we can use an environment variable in runtest.exp, 
all of this becomes moot for 1.6.3 and carrying *_triplet through can 
land in 1.6.4 instead, which I would prefer.


-- Jacob




Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 15 Apr 2021 14:23:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 10:23:39 2021
Received: from localhost ([127.0.0.1]:38816 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX2uB-0002a7-Ds
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 10:23:39 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:37978)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lX2u6-0002Zv-R5
 for 47382 <at> debbugs.gnu.org; Thu, 15 Apr 2021 10:23:38 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 33C56286C;
 Thu, 15 Apr 2021 16:23:33 +0200 (CEST)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024)
 with ESMTP id zTABYV8sfHrr; Thu, 15 Apr 2021 16:23:31 +0200 (CEST)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id B6E9F2CB0;
 Thu, 15 Apr 2021 16:23:31 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1618496611;
 bh=zEl7SSBJsginplFx4OLn/xgZN1eEoar3NhEUJp9LI20=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=PKNLvmbOeUG+NcMw1CIiDYwzZABcsMGEaVaAcO6qN8P9ROX0RGK4gdCvKYQApro8y
 xVurxgyQZJiUVyw+t4g1aNGoOK9bmeQriivI+uuDBSOyfxpu0Y6/ufDkaPEN7Ikz6s
 yJglw4rWHeo7t+aLpZAlGpmxOcKsC9RHnpWNMhWYbEu+5djZEAd2m392zD4cCmBDGu
 lthXw1n4PD0vZvmwViRRVW+xV1IdeS5jgJzNTp9ZZqEs/TkWxZqCcxeGy6ZW6wy0FO
 b+j1iDcjS6+6VAd9DsSNzStEbjcQ3b5TN1pGO1HGAzNpc0OE+lD+aE0UXTnQl/Iro4
 e6jpv0mf/hECg==
From: Rainer Orth <ro@HIDDEN>
To: Jacob Bachmeyer <jcb62281@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN>
 <yddtuormrzs.fsf@HIDDEN>
 <60665E3F.4080100@HIDDEN>
Date: Thu, 15 Apr 2021 16:23:31 +0200
In-Reply-To: <60665E3F.4080100@HIDDEN> (Jacob Bachmeyer's message of "Thu, 
 01 Apr 2021 18:58:55 -0500")
Message-ID: <yddfszrhbj0.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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: -3.3 (---)

Jacob Bachmeyer <jcb62281@HIDDEN> writes:

>> However, there are more errors still:
>>
>>                 === launcher Summary ===
>>
>> # of expected passes		5
>> # of unexpected failures	45
>> # of unsupported tests		2
>>   
>
> Can you post the launcher.log file?  The dejagnu script is fairly 
> simple, and I suspect that I may be able to deduce the causes of those 
> failures, especially if they are like the "report-card" failure that 
> follows.

After the fix for the expr foo : - issue, I've made some progress in
identifying what's still going wrong:

I now see

Running "env EXPECT=true TCLSH=true /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/bin/dejagnu foo -v -v" ...
Verbose level is 2
Running launcher from /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/bin
Probing directory /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/share/dejagnu/commands
Looking for commands in /vol/gcc/obj/dejagnu/dejagnu-1.6.3-branch/10/testsuite/launcher.all/command/share/dejagnu/commands
ERROR: could not resolve command dejagnu-foo
child process exited abnormally
FAIL: dejagnu foo as Tcl

Comparing sh -x output between Solaris 10 and 11, I found that the
difference starts in dejagnu at this point:

# Remove any leading autoconf platform prefix and the "dejagnu" prefix.
command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`

* S10 or 11 with /usr/bin/sed:

  command=dejagnu

* S11.3 with /usr/gnu/bin/sed:

  command=

The issue is the Solaris sed vs. GNU sed difference: /usr/bin/sed
behaves identically between Solaris 10 and 11, however GNU sed isn't
bundled with Solaris 10.

Solaris sed doesn't support ? in REs (cf. regexp(7)).  The Autoconf
manual documents

Portable @command{sed} regular expressions should use @samp{\} only to escape
characters in the string @samp{$()*.0123456789[\^n@{@}}.  For example,
alternation, @samp{\|}, is common but Posix does not require its
support, so it should be avoided in portable scripts.  Solaris
@command{sed} does not support alternation; e.g., @samp{sed '/a\|b/d'}
deletes only lines that contain the literal string @samp{a|b}.
Similarly, @samp{\+} and @samp{\?} should be avoided.

One can use \{0,1\} instead, but I cannot tell for certain how portable
that is:

diff --git a/dejagnu b/dejagnu
--- a/dejagnu
+++ b/dejagnu
@@ -147,7 +147,7 @@ if $want_version ; then
 fi
 
 # Remove any leading autoconf platform prefix and the "dejagnu" prefix.
-command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
+command=`basename "$0" | sed -e 's/^.*-\{0,1\}dejagnu-\{0,1\}//'`
 
 while expr $# \> 0 > /dev/null
 do

With that fixed I ran into:

Found subcommand foo with variants:  tcl sh
grep: illegal option -- q
Usage: grep -hblcnsviw pattern file . . .
Selected variant tcl

grep -q isn't portable, too, also documented in the Autoconf manual:

Some of the options required by Posix are not portable in practice.
Don't use @samp{grep -q} to suppress output, because traditional @command{grep}
implementations (e.g., Solaris) do not support @option{-q}.

Using I/O redirection instead got me way further:

diff --git a/dejagnu b/dejagnu
--- a/dejagnu
+++ b/dejagnu
@@ -235,7 +235,7 @@ if $have_gawk ; then
 fi
 # is "awk" actually GNU Awk?
 if $have_awk ; then
-    if "$awkbin" --version | sed 1q | grep -qi 'GNU Awk' ; then
+    if "$awkbin" --version | sed 1q | grep -i 'GNU Awk' > /dev/null; then
        have_gawk_as_awk=true
     else
        have_gawk_as_awk=false
@@ -406,8 +406,8 @@ if $want_help ; then
        echo ERROR: file "'$help_file'" is not readable
        exit 2
     fi
-    if grep -q '#help' "$help_file" \
-       && grep -q '#end' "$help_file"; then : ; else
+    if grep '#help' "$help_file" > /dev/null \
+       && grep '#end' "$help_file" > /dev/null; then : ; else
        echo ERROR: file "'$help_file'" does not contain a help message
        exit 2
     fi

Now I'm down to

Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/command.exp ...
FAIL: dejagnu --help works
FAIL: dejagnu foo --help works if shell variant selected

This only occurs when running runtest --tool launcher manually, but
works with make check.

Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/help.exp ...
ERROR: The 'man' command in Solaris does not work in the source tree.
Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/testsuite/launcher.all/interp.exp ...
FAIL: have no Awk
FAIL: have no GNU Awk
FAIL: have no Tcl
FAIL: have no Expect

Running "env AWK=bogus GAWK=bogus /vol/src/gnu/dejagnu/dejagnu-1.6.3-branch/local/dejagnu --DGTimpl awk" ...
child process exited abnormally
FAIL: have no Awk

Those FAILs happen because interp.exp expects exitcode 1 while we get
255 instead.  The autoconf manual documents this, too:

Don't expect @command{false} to exit with status 1: in native
Solaris @file{/bin/false} exits with status 255.

>> 		=== report-card Summary ===
>>
>> # of unresolved testcases	2
>>
>> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card.all/onetest
>> .exp ...
>> spawn /bin/sh -c cd /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card
>> .all/onetest && exec /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu report-card^
>> M
>> expr: syntax error
>> ERROR: could not resolve command dejagnu-report-card
>>
>> There are obviously more hardcoded uses of /bin/sh here and elsewhere,
>> but I haven't looked for those yet.
>
> That hardcoded use of /bin/sh only changes directory and execs 
> $LAUNCHER, which should run with /bin/ksh if you have patched its #! line.
>
> The "dejagnu" script is run, but fails to locate the report-card 
> subcommand.  I would be interested in the output of "/bin/ksh -x 
> ./dejagnu report-card" in the source directory, assuming that "-x" 
> produces an execution trace from ksh as it does from bash (... and 
> likewise for Solaris 10 /bin/sh after applying the patch above to change 
> the use of the readonly command).  There are two likely candidates I see 
> for this error:  one is an `expr :` match to detect a leading "-" and 
> the other is a possibility that `expr $# \> 0` in a while loop test is 
> somehow being executed as `expr \> 0` under some condition.  Both of 
> these hypotheses imply unexpected behavior if not outright bugs in 
> Solaris 10.
>
> There is a possibility here that dejagnu may be tickling a bug in 
> Solaris 10 /bin/ksh and may work with /bin/sh, or may not work with 
> either of them.

When I retried this now, the report-card results are good:

		=== report-card Summary ===

# of expected passes		245





Information forwarded to bug-dejagnu@HIDDEN, jcb62281@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 15 Apr 2021 12:14:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 08:14:25 2021
Received: from localhost ([127.0.0.1]:36637 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX0t7-00077g-5b
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 08:14:25 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:40834)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lX0t4-00077X-Fu
 for 47382 <at> debbugs.gnu.org; Thu, 15 Apr 2021 08:14:23 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 2901D22BA;
 Thu, 15 Apr 2021 14:14:21 +0200 (CEST)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024)
 with ESMTP id USiKEho0-vAI; Thu, 15 Apr 2021 14:14:19 +0200 (CEST)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 047211F64;
 Thu, 15 Apr 2021 14:14:18 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1618488859;
 bh=ZhfFkwEJiSAHbpAuoHS81JZBCmNgzrB82Xe13GN7kMI=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=V1czFPiSj5mjUOLXVQm0WocHuUkFNTlhRyqa1Y91EGnxX2N3Wk+OpeChhjk/NGVQR
 icYKJl61t6OeeBbiwg8DV6hw6Irdi02tOeXi1nvwgdgyzYcOZyswIgnPamcw8Q5k4d
 vn5k7GLXnBhx06/yljsxq1zzETHFwSHN5x4eUfggH9T215CobbABdndL8D2upLNf/1
 xtAtPXSez6w3ECCGrb2ZNJZtxSndvgFzvNeSNDpk8C91b5+JMskVYIHjUVatzgD6hQ
 dDR/X585/8MF/dwBY/U5HufvMm92sGHn6tGLPrqIEneos+CPuycV1n65uFEhPXAVsO
 an1C1JZ4UFQ1w==
From: Rainer Orth <ro@HIDDEN>
To: Jacob Bachmeyer <jcb62281@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN>
 <yddtuormrzs.fsf@HIDDEN>
 <606FCC8D.2090102@HIDDEN>
 <yddwnt5gdkj.fsf@HIDDEN>
 <6077BA51.6030002@HIDDEN>
Date: Thu, 15 Apr 2021 14:14:18 +0200
In-Reply-To: <6077BA51.6030002@HIDDEN> (Jacob Bachmeyer's message of "Wed, 
 14 Apr 2021 23:00:17 -0500")
Message-ID: <yddo8efhhid.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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: -3.3 (---)

Jacob Bachmeyer <jcb62281@HIDDEN> writes:

> Rainer Orth wrote:
>> [...] here's an excerpt from running
>>
>> env EXPECT=true TCLSH=true /bin/ksh -x
>> /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all/command/bin/dejagnu
>> foo -v -v
>>
>> + test -f
>> /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all
>> /command/share/dejagnu/commands/dejagnu.sh
>> + expr foo : -
>> + 1> /dev/null
>> expr: syntax error
>>   
>
> Thank you!  That identifies the problem.  As of commit 
> c95e2e9b567a1c3ca22b2de4fdcdfe4b99ba2a03, the dejagnu launcher script 
> now uses the shell "case" builtin for that pattern match instead of 
> using expr:

Fine, thanks.

>> 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.




Information forwarded to bug-dejagnu@HIDDEN, jcb62281@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 15 Apr 2021 11:57:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 07:57:01 2021
Received: from localhost ([127.0.0.1]:36611 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX0cG-0006fj-G2
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 07:57:00 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:37982)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lX0cB-0006fS-M4
 for 47382 <at> debbugs.gnu.org; Thu, 15 Apr 2021 07:56:59 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 886E51F49;
 Thu, 15 Apr 2021 13:56:53 +0200 (CEST)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024)
 with ESMTP id SM0W6trdOoeY; Thu, 15 Apr 2021 13:56:51 +0200 (CEST)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id D4869214E;
 Thu, 15 Apr 2021 13:56:51 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1618487811;
 bh=R7qmXNQa9Z3Uq2hy4jLkFURs+JzmNCi4KLoiJjZouvg=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=SigvnukkQd+au1UnLdEH9hr235TNJLTWEOM2hAczyWs26m/0F8XRE9SZ5hB7oIIAg
 AIM0Hn49ltn95ahPYVIMQ1XFpmL3VHRU4J541RlZI+dQ2yVethAKmwpKEqSha2Puzw
 4DgSFPGn4EPTV76uqaFKhEhxlS1qT2fH8sYOqjPbcUp4V71J5hrRuBOhwRcc0obDsu
 NOK1DUloH8mMHKXOhuB954NoDq27G9Ctea5Uhh4iopEOeWLWMZGr20ytwQAokDt2wa
 dOo9wj+CkWoYZqDaL/0pxV4dobptO24Z9zA+9sZhTryK0sqey0/jkpWtaOzLGepNnW
 SNuBClpvmVm8g==
From: Rainer Orth <ro@HIDDEN>
To: Jacob Bachmeyer <jcb62281@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN>
 <yddtuormrzs.fsf@HIDDEN>
 <606FCC8D.2090102@HIDDEN>
 <ydd1rbdhtlj.fsf@HIDDEN>
 <6077BA0B.1000904@HIDDEN>
Date: Thu, 15 Apr 2021 13:56:51 +0200
In-Reply-To: <6077BA0B.1000904@HIDDEN> (Jacob Bachmeyer's message of "Wed, 
 14 Apr 2021 22:59:07 -0500")
Message-ID: <yddsg3rhibg.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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: -3.3 (---)

Jacob Bachmeyer <jcb62281@HIDDEN> writes:

>>   Unfortunately, this has many issues:
>>
>> * The modified files weren't made executable, leading to lots of
>>   failures from the likes of
>>
>> Native configuration is couldn't execute
>> "/vol/src/gnu/dejagnu/dejagnu-1.6.3-rc3/config.guess": permission denied
>>   
>
> Oops... :-)  I said that logic was experimental.  :-D  I will need to
> rethink this again, since you mention other problems.

I still believe that using the tried-and-try AC_SUBST (like automake
does in t/java-compile-run-flat.sh and t/java-compile-run-nested.sh with
#!@SHELL@) would solve most issues nicely:

* not writing to $srcdir

* supporting both in-tree and VPATH builds

* most likely the permission issue

This has been successfully used for years if not decades and is most
certainly well tested in situations we may not even have thought about :-)

>> * Even if I manually make the scripts executable, this isn't a proper
>>   solution: runtest.exp looks for config.guess in quite a number of
>>   places, and many projects rely on being able to drop newer
>>   config.{guess,sub} versions into their source trees to support targets
>>   that may not even have existed at the time the version of DejaGnu used
>>   was released.
>
> While runtest.exp *looks* in several places, it will almost always *find*
> config.guess in either $libdir (typical when running from DejaGnu source
> tree), $libdir/libexec (typical when installed), or $execpath (DejaGnu
> source tree, DEJAGNULIBS overriding $libdir).  I could replace the rest of
> those with $execpath/libexec to pick up the installed config.guess near
> runtest.exp even if DEJAGNULIBS is used and remove the others, as they
> would never be used.  They are already very unlikely to ever be used.

Maybe (I haven't dug into this in detail) the fact that e.g. the gcc
testsuite uses the in-gcc-tree config.guess is because site.exp is
generated at make check time, emitting *_triplet into per-testsuite
versions of site.exp.

>>   So using the CONFIG_SHELL should be in the exec line in
>>   runtest.exp.
>
> This leads us right back to the same problem:
>
>> * Besides, modifying files in the source tree is wrong for several
>>   reasons:
>>
>> ** Read-only source trees need to be supported.
>>   
>
> (Aside:  Automake does not necessarily support read-only source trees.  For
> example, building in an object tree can result in an Info file in the
> source tree being rebuilt.  I remember seeing this happen while building
> other GNU releases in the past.)

Creating new files in the source tree (and failing; gcc has gone to some
lenghts to avoid this) is one thing; modifying the unpacked sources in
place is quite another.

When you use AC_SUBST as I suggested, that usually takes an
in-source-tree runtest.exp.in (or some such; you can specify the exact
file names using AC_CONFIG_FILES) and write the result to the build
directory.  You just need to make sure that you use the generated file
during make check and make install, which is easy if the filenames differ.

>> ** If you share the same source tree between several targets, which is
>>    quite common, you might end up with a shell in #! on a second target
>>    that may not even exist there.
>>
>>   While this could be avoided by making the substitutions to a copy in
>>   the build tree, the issue vanishes if runtest.exp uses the proper
>>   shell in the exec.
>
> For runtest.exp to use the proper shell, it must somehow *get* that
> information from configure.  So, instead of patching the #! line in 

As I said, the established convention is to use $CONFIG_SHELL if set and
fall back to /bin/sh if not.

> config.guess, we would need to patch runtest.exp.  While, again, we could
> key the patch off of a unique line (here the only line containing "exec
> $config_guess" sans quotes) or arrange for a default value of "/bin/sh" if
> SHELL is still "@SHELL@" as it will be in the source directory prior to
> running configure, there are a few possibilities here:

No need to key off anything when using AC_SUBST: you pass the files to
be substituted via AC_CONFIG_FILES, then at configure time all uses of
the substituted variables (@SHELL@ in this case) are substituted and the
resulting files places in the build dir.  Alternatively, you could
create a global config file at configure time that contains something
like

set dg_shell = @SHELL@

and always source that.  If this is more reliable than just fixing
runtest.exp(.in) itself is your decision; I for one doubt it.

> * Fix the executable permission problem, but leave the NFS shared source
>   tree issue to twist in the wind.  (bad)
>
> * Patch the "exec $config_guess" in runtest.exp, also leaving the NFS
>   shared source tree issue to twist in the wind. (also bad)
>
> * Copy config.guess to the build tree and patch it there for installation.
>  This should be workable but will break running DejaGnu from a Git checkout
> on Solaris 10.  I note that this feature is currently broken on Solaris 10
> anyway due to /bin/sh not being able to run config.guess.  This may also
> cause a few errors with the DejaGnu testsuite, as the DejaGnu tests would
> be run with a shell error in the place of a build triplet.  (Wait... why
> are we not picking up the build system triplet from site.exp if configure
> has been used?  That would avoid the need to run config.guess in the source
> directory, at least when building for installation...)

Seems like an incredibly complicated dance to me just to avoid chaning
the above

exec $config_guess

to

exec $dg_shell $config_guess

and be done with it: no need to modify imported files and working with
unmodified out-of-tree copies of config.guess at that.

> If host_triplet and/or build_triplet are set in the init files, such as
> site.exp, DejaGnu does not bother running config.guess at all.  This 
> will cover the case of testing DejaGnu itself, and patching the installed
> copy of config.guess can cover the general case.  I should be able to use
> EXTRA_DEJAGNU_SITE_CONFIG to handle this for DejaGnu itself, and I will
> need to consider offering a patch to Automake to add that generally, since
> transferring build/host/target information through site.exp would probably
> be useful for most packages.

Please keep in mind that this needs to continue working with existing
versions of automake.  As an example, gcc currently uses automake 1.15.1
and autoconf 2.69 and upgrading either or both is far from trivial,
certainly not going to be undertaken just to be able a newer version of
DejaGnu.




Information forwarded to bug-dejagnu@HIDDEN, jcb62281@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 15 Apr 2021 04:00:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 00:00:26 2021
Received: from localhost ([127.0.0.1]:36138 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lWtB4-0006yu-9o
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 00:00:26 -0400
Received: from mail-oo1-f41.google.com ([209.85.161.41]:38455)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lWtB3-0006yf-1V
 for 47382 <at> debbugs.gnu.org; Thu, 15 Apr 2021 00:00:25 -0400
Received: by mail-oo1-f41.google.com with SMTP id
 y23-20020a4ade170000b02901e6250b3be6so2615554oot.5
 for <47382 <at> debbugs.gnu.org>; Wed, 14 Apr 2021 21:00:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=wGJeb4wCd1ib5aZ/el2nRBiYYzN1FBvRtYYwcdoPnxU=;
 b=sbnYzb7youQ6fqU0Dxsh2La8gofg2WVb6oQjoaWh8krH6ZQj4A2qSsaTotmZTinSml
 1eqoy6BoxTw2U7KGTMnj7h2HP4CXjEvLdofsIdx8f65qfphQFWQGwPCuVlo5NbCd//C7
 XfU23w6QtQjQIkZ0+ld1nj4ff4/4KeApGtUUoqCmIgatJTwOHkGP1DGqZEYFuVySKPZE
 qfiq6uG5k/K3rbZEI7DRJrTt+6r7hsMdluXqrvyj8c8HXE6ywP538FzahJw4ahNUwATb
 qvPqxBydvq/ZctuyCIu5lHO2PBGIkI+jEbc0VeqzZaPUZzESYI7gPk112Dg7opMxiJec
 XD0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=wGJeb4wCd1ib5aZ/el2nRBiYYzN1FBvRtYYwcdoPnxU=;
 b=atugPvTnEdqHcRe2jXMHWcgjvNPixbEr4gHoezyZEmqoiIuPe3S4UI7fpR5bgG78Oq
 71lIWWFTWdTKGg6RhzNSKjaAb6VL7k31bwuzMs6V1wOmJVaNG+4QPKy6Uwrfhrzjq2aF
 l/4wLO68rFl/DmNTiuS+nq6zegV2pEbiLQT2FMOasrD2QTkGSeM9DtU8y61k8zhPiQD1
 41ti4yek+7u2RZies3kEOJCcVhWBFn1TYHHMEbVSe49eJoI10nuXTT2jt9R5nEooG6+9
 Kz8SSvXsfi2MAUbPgl3ySRSY7YL/z73PWiDvukogNGSQTYL24N9tU/mfMFLpAMwDJFlV
 tobA==
X-Gm-Message-State: AOAM533p9ypG0kPUGrdGHhrvuHW5bWOlfTnqCmRxsXjvCxg3okr471rS
 ASm7kWb0fdHWy6P7Z6+D1u5UG3RNU9Y=
X-Google-Smtp-Source: ABdhPJwUFhS9pQfM7pl4weIy55XAiW3Nv2KAikYJBagC2ZsNIiF84m1Zd6EUXTxdRe1J4By/WxZGVg==
X-Received: by 2002:a4a:d553:: with SMTP id q19mr1120197oos.28.1618459219383; 
 Wed, 14 Apr 2021 21:00:19 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id p15sm404719otl.23.2021.04.14.21.00.18
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Wed, 14 Apr 2021 21:00:18 -0700 (PDT)
Message-ID: <6077BA51.6030002@HIDDEN>
Date: Wed, 14 Apr 2021 23:00:17 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<606FCC8D.2090102@HIDDEN>
 <yddwnt5gdkj.fsf@HIDDEN>
In-Reply-To: <yddwnt5gdkj.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> [...] here's an excerpt from running
>
> env EXPECT=true TCLSH=true /bin/ksh -x /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all/command/bin/dejagnu foo -v -v
>
> + test -f /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all
> /command/share/dejagnu/commands/dejagnu.sh
> + expr foo : -
> + 1> /dev/null
> expr: syntax error
>   

Thank you!  That identifies the problem.  As of commit 
c95e2e9b567a1c3ca22b2de4fdcdfe4b99ba2a03, the dejagnu launcher script 
now uses the shell "case" builtin for that pattern match instead of 
using expr:

8<----
diff --git a/dejagnu b/dejagnu
index 44c8962..9f6ae4b 100755
--- a/dejagnu
+++ b/dejagnu
@@ -152,9 +152,7 @@ command=`basename "$0" | sed -e 's/^.*-\?dejagnu-\?//'`
 while expr $# \> 0 > /dev/null
 do
     if test -z "${command}" ; then
-       if expr "$1" : - > /dev/null ; then
-           break
-       fi
+       case $1 in -*) break;; esac
        command="$1"
        shift
     fi
@@ -167,9 +165,7 @@ do
            break 2
        fi
     done
-    if expr "$1" : - > /dev/null ; then
-       break
-    fi
+    case $1 in -*) break;; esac
     if test -n "$1" ; then
        command="${command}-$1"
        shift
8<----


> 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".



-- Jacob




Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 15 Apr 2021 03:59:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 14 23:59:18 2021
Received: from localhost ([127.0.0.1]:36134 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lWt9x-0006ut-R7
	for submit <at> debbugs.gnu.org; Wed, 14 Apr 2021 23:59:18 -0400
Received: from mail-ot1-f51.google.com ([209.85.210.51]:45762)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lWt9v-0006ud-7G
 for 47382 <at> debbugs.gnu.org; Wed, 14 Apr 2021 23:59:16 -0400
Received: by mail-ot1-f51.google.com with SMTP id
 f75-20020a9d03d10000b0290280def9ab76so16307293otf.12
 for <47382 <at> debbugs.gnu.org>; Wed, 14 Apr 2021 20:59:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=/3NWv0hjso42Qnj6Vm7Q396FXfTWZcciixq+Gt5NB1U=;
 b=TDTGCHl9sOUTsHadkEIMgO1KYgtQTUPu+9Xw+7/hXpqR3OoYozHjmUbsOuK5RhAHy6
 6nVkvQhdagTBnEiWQbVzodwRvcITpqtlPW1VmcOVlr53jwhjKkIvd39BddPMssmoghdP
 uhjhheHiQ2et2nSnuUjSJGvpvZkfqhZrSfwN9W42sv872ddfeKcyZTEg63Qhe8x484SK
 0+soo/8UUr/vJbYvK36dAA9AmjmUQq1I0JHk7x5l+zVTeXgqDgv18heZSBx7I1ZhFzSb
 odpPw09uL6vmEkowatd+lEJBLALComD6HH1KcjR4fe72JUOSXv8WFTfsL9vsgMh4vcm8
 MZ6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=/3NWv0hjso42Qnj6Vm7Q396FXfTWZcciixq+Gt5NB1U=;
 b=Aa8ORH0ILpONTbujP7zAezARSCLwwX0DZxBKEL0YepwzUA4oXdD9khooeqNIcKqE0O
 j7vi76UICDMRmGF0MupY9ezMKyAgvIkRqITD37DwrwLMF7/UdPiMpZsahgA5rHgQrEhZ
 iHCVByLFRyRksfEMoZJdu1l1RqoPVDqKKCf+Vwio622J3y4Fk9UGC7TnIr+AksF2wFDK
 Zi4PqfuAkE8IWk/jAF3Prbf9oXcE05H4MH9O3filuhJaEEhV4ttvyAESI9jEiO9gp223
 txpu4fQP/Qdh3/EGAGc2/OD1eMBE+GW4Y4oSEAAyv9nyvtm4ZbyxzW3D1txmChSFJWhc
 4Fhw==
X-Gm-Message-State: AOAM5315GGV3MkM2CkEvpBj+zCsJ6aXIuA7WB+707wai4Ttc2Dt8ONzT
 hbt9lEtuEGZuzqUgqWLIapDXgNi1uXw=
X-Google-Smtp-Source: ABdhPJyxvMGTkoHZR0lgvx6uOeqLjFhYlKKDl68cO+FcL1UC7l/GnihhuKnqsXETBJtykHCNdb5jRg==
X-Received: by 2002:a05:6830:1045:: with SMTP id
 b5mr1085816otp.257.1618459149503; 
 Wed, 14 Apr 2021 20:59:09 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-19.dsl.ablntx.sbcglobal.net.
 [70.133.144.19])
 by smtp.gmail.com with ESMTPSA id j8sm373719otr.28.2021.04.14.20.59.08
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Wed, 14 Apr 2021 20:59:08 -0700 (PDT)
Message-ID: <6077BA0B.1000904@HIDDEN>
Date: Wed, 14 Apr 2021 22:59:07 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>	<605D6737.7000907@HIDDEN>	<yddtuormrzs.fsf@HIDDEN>	<606FCC8D.2090102@HIDDEN>
 <ydd1rbdhtlj.fsf@HIDDEN>
In-Reply-To: <ydd1rbdhtlj.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> [...] that logic caused quite a number of issues:
>
> * On Solaris 10 with CONFIG_SHELL=/bin/ksh, configure substituted
>   /bin/ksh into the #! line of both config.guess and config.sub.
>   

It worked!  :-)

>   Unfortunately, this has many issues:
>
> * The modified files weren't made executable, leading to lots of
>   failures from the likes of
>
> Native configuration is couldn't execute "/vol/src/gnu/dejagnu/dejagnu-1.6.3-rc3/config.guess": permission denied
>   

Oops... :-)  I said that logic was experimental.  :-D  I will need to 
rethink this again, since you mention other problems.

> * Even if I manually make the scripts executable, this isn't a proper
>   solution: runtest.exp looks for config.guess in quite a number of
>   places, and many projects rely on being able to drop newer
>   config.{guess,sub} versions into their source trees to support targets
>   that may not even have existed at the time the version of DejaGnu used
>   was released.

While runtest.exp *looks* in several places, it will almost always 
*find* config.guess in either $libdir (typical when running from DejaGnu 
source tree), $libdir/libexec (typical when installed), or $execpath 
(DejaGnu source tree, DEJAGNULIBS overriding $libdir).  I could replace 
the rest of those with $execpath/libexec to pick up the installed 
config.guess near runtest.exp even if DEJAGNULIBS is used and remove the 
others, as they would never be used.  They are already very unlikely to 
ever be used.

>   So using the CONFIG_SHELL should be in the exec line in
>   runtest.exp.
>   

This leads us right back to the same problem:

> * Besides, modifying files in the source tree is wrong for several
>   reasons:
>
> ** Read-only source trees need to be supported.
>   

(Aside:  Automake does not necessarily support read-only source trees.  
For example, building in an object tree can result in an Info file in 
the source tree being rebuilt.  I remember seeing this happen while 
building other GNU releases in the past.)

> ** If you share the same source tree between several targets, which is
>    quite common, you might end up with a shell in #! on a second target
>    that may not even exist there.
>
>   While this could be avoided by making the substitutions to a copy in
>   the build tree, the issue vanishes if runtest.exp uses the proper
>   shell in the exec.

For runtest.exp to use the proper shell, it must somehow *get* that 
information from configure.  So, instead of patching the #! line in 
config.guess, we would need to patch runtest.exp.  While, again, we 
could key the patch off of a unique line (here the only line containing 
"exec $config_guess" sans quotes) or arrange for a default value of 
"/bin/sh" if SHELL is still "@SHELL@" as it will be in the source 
directory prior to running configure, there are a few possibilities here:

* Fix the executable permission problem, but leave the NFS shared source 
tree issue to twist in the wind.  (bad)

* Patch the "exec $config_guess" in runtest.exp, also leaving the NFS 
shared source tree issue to twist in the wind. (also bad)

* Copy config.guess to the build tree and patch it there for 
installation.  This should be workable but will break running DejaGnu 
from a Git checkout on Solaris 10.  I note that this feature is 
currently broken on Solaris 10 anyway due to /bin/sh not being able to 
run config.guess.  This may also cause a few errors with the DejaGnu 
testsuite, as the DejaGnu tests would be run with a shell error in the 
place of a build triplet.  (Wait... why are we not picking up the build 
system triplet from site.exp if configure has been used?  That would 
avoid the need to run config.guess in the source directory, at least 
when building for installation...)

If host_triplet and/or build_triplet are set in the init files, such as 
site.exp, DejaGnu does not bother running config.guess at all.  This 
will cover the case of testing DejaGnu itself, and patching the 
installed copy of config.guess can cover the general case.  I should be 
able to use EXTRA_DEJAGNU_SITE_CONFIG to handle this for DejaGnu itself, 
and I will need to consider offering a patch to Automake to add that 
generally, since transferring build/host/target information through 
site.exp would probably be useful for most packages.


-- Jacob




Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 14 Apr 2021 14:12:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 14 10:12:33 2021
Received: from localhost ([127.0.0.1]:35414 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lWgFs-00019f-SY
	for submit <at> debbugs.gnu.org; Wed, 14 Apr 2021 10:12:33 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:35092)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lWgFq-00019W-Qo
 for 47382 <at> debbugs.gnu.org; Wed, 14 Apr 2021 10:12:32 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id E4314B62FC;
 Wed, 14 Apr 2021 16:12:28 +0200 (CEST)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024)
 with ESMTP id PgmEeO4SOi_D; Wed, 14 Apr 2021 16:12:28 +0200 (CEST)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 5F2BBB6367;
 Wed, 14 Apr 2021 16:12:28 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1618409548;
 bh=GYWp90dcb/Tak4BNli45M3UtfIi4Fh6p/3lJVzcS7+g=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=Y5eLiXNZECsbOhIHplPR9c/c9a3mtYDlztVDqj8YeUr36T1KYGKtu03cjrrTQz4b3
 8nMEsvjfJtXtfOgeCJsDLcCg5wp+RIIcJG/Pr/g1SRCeiAsbGwJas8pzNh6uB21r6M
 2saD8hMv6w5Il7Fj9Nn/lRwDghxL9M6IYltl29VwigRD6BCgqbxlB43hozKgCsUEXv
 vY4O5NlsXj9fXRTWogypKmkr7qPh1GV8GzTq9M7JmTLqvZPYQeXNgWe2oxIY+8vyV2
 FFf74ivHRfWipjSg2NrfrvLnVXgJhDjXUxAglu0oVyxFDbM4AhVUGhXI0K4b19eKsc
 l1za2UvW9oisQ==
From: Rainer Orth <ro@HIDDEN>
To: Jacob Bachmeyer <jcb62281@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN>
 <yddtuormrzs.fsf@HIDDEN>
 <606FCC8D.2090102@HIDDEN>
Date: Wed, 14 Apr 2021 16:12:28 +0200
In-Reply-To: <606FCC8D.2090102@HIDDEN> (Jacob Bachmeyer's message of "Thu, 
 08 Apr 2021 22:39:57 -0500")
Message-ID: <yddwnt5gdkj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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: -3.3 (---)

Hi Jacob,

>>   I'd already noticed another instance of the problem after I'd sent the
>>   original PR: while e.g. autoconf-generated configure and related in
>>   gcc are very careful to invoke config.guess only prefixed with $SHELL,
>>   runtest.exp exec's it directly, again falling into the trap of POSIX
>>   shell constructs (also $(), maybe more).
>>   
>
> The "exec" used in this case is Tcl's exec(n), which simply invokes the
> installed copy of config.guess (via the system) with the interpreter 
> indicated in the file.  The patch now applied by configure should correct
> this issue.

true, but according to my manual testing

exec $SHELL $config_guess

with SHELL initialized from CONFIG_SHELL, works just as well and avoids
having to substitute the scripts imported from upstream.

>> However, there are more errors still:
>>
>> [...]
>>
>> Running
>> /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card.all/onetest
>> .exp ...
>> spawn /bin/sh -c cd
>> /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card
>> .all/onetest && exec /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu
>> report-card^
>> M
>> expr: syntax error
>> ERROR: could not resolve command dejagnu-report-card
>>
>> There are obviously more hardcoded uses of /bin/sh here and elsewhere,
>> but I haven't looked for those yet.
>
> If this issue remains in rc3, I repeat my request for execution traces
> under both /bin/sh and /bin/ksh for the rc3 version of the dejagnu 
> launcher script.  Please attach the output of "/bin/ksh -x ./dejagnu
> report-card" and "/bin/sh -x ./dejagnu report-card" with both run in the 
> DejaGnu source directory when you get the chance if there are still issues.

It does, and happens with both /bin/sh and /bin/ksh: here's an excerpt
from running

env EXPECT=true TCLSH=true /bin/ksh -x /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all/command/bin/dejagnu foo -v -v

+ test -f /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc3/10-fresh/testsuite/launcher.all
/command/share/dejagnu/commands/dejagnu.sh
+ expr foo : -
+ 1> /dev/null
expr: syntax error

There are several more instances, all for

expr foo : -

Solaris /bin/expr just errors out with

expr: syntax error

This applies not only to Solaris 10 /bin/expr, but also to the Solaris
11.4 one as well as /usr/xpg6/bin/expr there.  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.




Information forwarded to bug-dejagnu@HIDDEN, jcb62281@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 14 Apr 2021 13:41:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 14 09:41:04 2021
Received: from localhost ([127.0.0.1]:33986 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lWflP-0008Jj-Vv
	for submit <at> debbugs.gnu.org; Wed, 14 Apr 2021 09:41:04 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:57006)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lWflL-0008J9-Ub
 for 47382 <at> debbugs.gnu.org; Wed, 14 Apr 2021 09:41:03 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 5CA8CB672A;
 Wed, 14 Apr 2021 15:40:58 +0200 (CEST)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024)
 with ESMTP id nty0p3dZZnZ3; Wed, 14 Apr 2021 15:40:57 +0200 (CEST)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 1B9ADB6729;
 Wed, 14 Apr 2021 15:40:57 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1618407657;
 bh=7hWvLqoHHuhoG9bw1ELEBwIgZV+h/mh2jjdgn6sfDu4=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=dsugPHHMQWr81mB/KuLp934tYX6c+sJjxS7lv004A5Bd37EjUDSWFtzRjXjuYYQFn
 p9u5b+0tyWF53TBv5PLuJQKAjPz7b+n8dnbZikijuN/jsTMWZbX7WQfo0MQSI/npNM
 OdDw5+Dh3QXnx3jWwVGTQE15Jdmf+ee5xHUb+yaqJrrHHSNZaqpyrwujIT5xfui23g
 P/xyipqUwqD8nPgyhw5j/NxHVuXnz1RYfG+9W8PWyFHnE4u4iG5OyvxZjtPkW8IQJM
 weUlxnn4R5uSLpbJTUnhyZtXYjKVHtXRQwTVOVDbBNN4jmox6leJyMAitUlj/Cu118
 hYhYZpzOB6WmQ==
From: Rainer Orth <ro@HIDDEN>
To: Jacob Bachmeyer <jcb62281@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN>
 <yddtuormrzs.fsf@HIDDEN>
 <606FCC8D.2090102@HIDDEN>
Date: Wed, 14 Apr 2021 15:40:56 +0200
In-Reply-To: <606FCC8D.2090102@HIDDEN> (Jacob Bachmeyer's message of "Thu, 
 08 Apr 2021 22:39:57 -0500")
Message-ID: <ydd1rbdhtlj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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: -3.3 (---)

Hi Jacob,

> Rainer Orth wrote:
>> * There's also
>>
>> Native configuration is
>> /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/config.guess: syn
>> tax error at line 35: `me=$' unexpected
>>
>>   another POSIX shell construct, and less easily avoided because this
>>   comes from upstream.
>>   
>
> As of commit 2ca7d52dfa1726aadd1363e399d9b41429332017, which will be in
> release candidate 3, configure now contains experimental logic to 
> address this issue by patching the interpreter line in config.guess and
> config.sub when SHELL is not /bin/sh.

I'll restrict my reply to this issue for the moment because that logic
caused quite a number of issues:

* On Solaris 10 with CONFIG_SHELL=/bin/ksh, configure substituted
  /bin/ksh into the #! line of both config.guess and config.sub.
  Unfortunately, this has many issues:

* The modified files weren't made executable, leading to lots of
  failures from the likes of

Native configuration is couldn't execute "/vol/src/gnu/dejagnu/dejagnu-1.6.3-rc3/config.guess": permission denied

* Even if I manually make the scripts executable, this isn't a proper
  solution: runtest.exp looks for config.guess in quite a number of
  places, and many projects rely on being able to drop newer
  config.{guess,sub} versions into their source trees to support targets
  that may not even have existed at the time the version of DejaGnu used
  was released.  So using the CONFIG_SHELL should be in the exec line in
  runtest.exp.

* Besides, modifying files in the source tree is wrong for several
  reasons:

** Read-only source trees need to be supported.

** If you share the same source tree between several targets, which is
   quite common, you might end up with a shell in #! on a second target
   that may not even exist there.

  While this could be avoided by making the substitutions to a copy in
  the build tree, the issue vanishes if runtest.exp uses the proper
  shell in the exec.





Information forwarded to bug-dejagnu@HIDDEN, jcb62281@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 9 Apr 2021 03:40:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 08 23:40:09 2021
Received: from localhost ([127.0.0.1]:48712 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lUi09-0003P2-7H
	for submit <at> debbugs.gnu.org; Thu, 08 Apr 2021 23:40:09 -0400
Received: from mail-ot1-f46.google.com ([209.85.210.46]:34777)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lUi05-0003OR-9s
 for 47382 <at> debbugs.gnu.org; Thu, 08 Apr 2021 23:40:07 -0400
Received: by mail-ot1-f46.google.com with SMTP id
 k14-20020a9d7dce0000b02901b866632f29so4465908otn.1
 for <47382 <at> debbugs.gnu.org>; Thu, 08 Apr 2021 20:40:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=RzdrRgVBZnwXhPVzLIgD43P9ADGrSphEfY2RRzWoB0E=;
 b=pj2hb1smz3inB1yCqaSm4kI4BKnF+KYkxHct2LgTDTSbxUNym2cd+t5rhHqY3bEp2u
 m2gLiu5c/8AfS9FvJ8pJbqtg9iaPqgpf9HEc1NfF9z+BYbgR14GM74svy9a0iVx1hd8G
 g+m9NW4tfxQehRf393BKyOCKhSOqsnbypL35DzzIyOF9aTUc1mPEEFme20XOEiBnD1t9
 Qqz4dwQHmWs1+V8U7vkDPBE7jD8FuT1FskvZRmziosYBDeBV1gd/YI4j8EZa/MhlE2k8
 t/QZ8FMNiw2ge1VUDaSPOa/RSPtD+uPLwbpsva+VnzUUQ9JRxGyfQScV5FldVQKY/Pem
 5E1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=RzdrRgVBZnwXhPVzLIgD43P9ADGrSphEfY2RRzWoB0E=;
 b=Z2YqcUbcK6kJvNcaE0gSrg7ZvrjLHJYHSfsvDiQjbtHsP67crtVvWhK0AHxwTid3Tk
 dNc+jpP2QVPus9Sg026lz+Eh00cJtgu6Yu9Bal+e37mc2rbKLObdGDQ9AhU5Oo0WMfwO
 E8FlSq6oHixNgUINcXENy5B13C4tpo5gTh5R182LPxqs2iPwovd8Q2Z7fNLeSZ/cqIMZ
 c3pPAoOqB+6lWmBM+mJJ/Nsc8eNgIKtzbGHd037ICxR6fLBQyI9EbLJwQn40ltPO7SL3
 /RDxW48bm76i3lqhtny1nyC4sndhYLA73QBKsDg4LkbgZfcNXKBuCvMyaBBGcfXpjbur
 xD/w==
X-Gm-Message-State: AOAM532H/0vtJZb8o4P4tE05BbW2GumCCQPdH0Y2H0mhw+J3LWM42ofM
 UrsW7vI0PjwVhNZ5nx7JU48eLXnFo38=
X-Google-Smtp-Source: ABdhPJxBIhKFgAu85qN9KmdPiVo2B+awlIazbZNd+TSletwpYqLQzaoZ28+K5Y8IkbOGkzJDm4lUSw==
X-Received: by 2002:a9d:6c2:: with SMTP id 60mr10761496otx.89.1617939599531;
 Thu, 08 Apr 2021 20:39:59 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-213.dsl.ablntx.sbcglobal.net.
 [70.133.144.213])
 by smtp.gmail.com with ESMTPSA id f29sm342836ots.22.2021.04.08.20.39.58
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 08 Apr 2021 20:39:58 -0700 (PDT)
Message-ID: <606FCC8D.2090102@HIDDEN>
Date: Thu, 08 Apr 2021 22:39:57 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN> <yddtuormrzs.fsf@HIDDEN>
In-Reply-To: <yddtuormrzs.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> * There's also
>
> Native configuration is /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/config.guess: syn
> tax error at line 35: `me=$' unexpected
>
>   another POSIX shell construct, and less easily avoided because this
>   comes from upstream.
>   

As of commit 2ca7d52dfa1726aadd1363e399d9b41429332017, which will be in 
release candidate 3, configure now contains experimental logic to 
address this issue by patching the interpreter line in config.guess and 
config.sub when SHELL is not /bin/sh.

>   I'd already noticed another instance of the problem after I'd sent the
>   original PR: while e.g. autoconf-generated configure and related in
>   gcc are very careful to invoke config.guess only prefixed with $SHELL,
>   runtest.exp exec's it directly, again falling into the trap of POSIX
>   shell constructs (also $(), maybe more).
>   

The "exec" used in this case is Tcl's exec(n), which simply invokes the 
installed copy of config.guess (via the system) with the interpreter 
indicated in the file.  The patch now applied by configure should 
correct this issue.

> However, there are more errors still:
>
> [...]
>
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card.all/onetest
> .exp ...
> spawn /bin/sh -c cd /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card
> .all/onetest && exec /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu report-card^
> M
> expr: syntax error
> ERROR: could not resolve command dejagnu-report-card
>
> There are obviously more hardcoded uses of /bin/sh here and elsewhere,
> but I haven't looked for those yet.

If this issue remains in rc3, I repeat my request for execution traces 
under both /bin/sh and /bin/ksh for the rc3 version of the dejagnu 
launcher script.  Please attach the output of "/bin/ksh -x ./dejagnu 
report-card" and "/bin/sh -x ./dejagnu report-card" with both run in the 
DejaGnu source directory when you get the chance if there are still issues.

I have delayed extending the "shell swap" logic in configure to the 
dejagnu launcher script because I am currently uncertain whether it will 
help solve any problems.


-- Jacob





Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 1 Apr 2021 23:59:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 01 19:59:05 2021
Received: from localhost ([127.0.0.1]:58855 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lS7DM-0007ku-RS
	for submit <at> debbugs.gnu.org; Thu, 01 Apr 2021 19:59:05 -0400
Received: from mail-oi1-f172.google.com ([209.85.167.172]:45819)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lS7DL-0007kN-QV
 for 47382 <at> debbugs.gnu.org; Thu, 01 Apr 2021 19:59:04 -0400
Received: by mail-oi1-f172.google.com with SMTP id d12so3443701oiw.12
 for <47382 <at> debbugs.gnu.org>; Thu, 01 Apr 2021 16:59:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=ckCl4/4M5ZLxoDvByDtPO+cE//hjxTk3twqhtJrp1L4=;
 b=ZWEW9i4wB4ZDnzynjewDi9F2vpiLu0MVXrOdkv6t8PJOI+g3q6h4u3PmcDxEoKENyY
 4QwoE8LstI7DP6ydVJuG7JH9rMJV+0HRx/PJtRa2N2Me9yOr9NWoc7eecK8G9JuynyAj
 oe/7bmWtVdbCCA8fZ6qJ7i41wM0xaaG0ZEAXJ0cYlxT3gcZ7Q70WIv8ounp1RfxjU7yt
 6SM0noJuuWS4efxPhHVPq8AP6+FVOophbSEG0TYlH65yNzeliCx3qD8+pMqQ6uYG1DA0
 beFYUKtfiSzMRhtFR+AP/3wiJyTrf1iPHIUHTtsL51ng4k8J8EIQ7SegOQBor8lSOkbi
 B3qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=ckCl4/4M5ZLxoDvByDtPO+cE//hjxTk3twqhtJrp1L4=;
 b=OdfQfyBBCeKoxA/jn7ieUpwZ/q8SC7c8/HPuNIitSBBPKUetgM19qWgefKlQ9JRG1V
 3LUHQyYwfizzTsQaUp0WZ6p8R6RrR+7olGDMCh0ucb9M/bf7sCetc+kqhEsRNCMuoY9v
 eW5t6G9aThCCcbUnOrPjLoNqujYMJ0J8OtglrScVKKTS82kjW5HaEORGwDKLlt/K1Asj
 qP+tMjLAalywFTt/yaq8k1fm8h0htnIyScltHEV3ygZIMhzuOzf8GJBVdsOtayCQsAyk
 g69jZoo9mX7tshG6Wkbniyun789UJGXSKyWkv/Rp6+XxXtSTUyUfRhvQrzxQq+KVQhbl
 8mlw==
X-Gm-Message-State: AOAM532tLy6LQd65v7xy+qpDRUifBvafVYjJt8PIsywfQsTPvTIKj3x2
 z6yQsI9yF4phRVsYjqhTtY5YCm5GVyo=
X-Google-Smtp-Source: ABdhPJzHAyPCZm/+DqzbfDQJpeA3zTj/4CldUmXo6BG7ZTjI31Tal1KM1H645hNGxRgSkp1hGa52Xg==
X-Received: by 2002:aca:d70a:: with SMTP id o10mr8008138oig.143.1617321537765; 
 Thu, 01 Apr 2021 16:58:57 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-213.dsl.ablntx.sbcglobal.net.
 [70.133.144.213])
 by smtp.gmail.com with ESMTPSA id d24sm1415039otf.12.2021.04.01.16.58.56
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 01 Apr 2021 16:58:57 -0700 (PDT)
Message-ID: <60665E3F.4080100@HIDDEN>
Date: Thu, 01 Apr 2021 18:58:55 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN> <yddtuormrzs.fsf@HIDDEN>
In-Reply-To: <yddtuormrzs.fsf@HIDDEN>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> Jacob Bachmeyer <jcb62281@HIDDEN> writes:
>
>   
>> I had expected that some system out there might do this when I resisted
>> pressure to more aggressively use newer shell constructs in the 
>> "dejagnu" multipurpose launcher script.
>>
>> The previous maintainer had changed this because shellcheck complains about
>> the old `backticks` form.  I have chosen rework the script to return to ``
>> instead of $() and `expr ...` instead of $((...)) before rc2.
>>
>> As I am unable to test on Solaris, these reports are particularly helpful.
>>     
>
> As it happens, you could get access: there are gcc210 (Solaris 10) and
> gcc211 (Solaris 11.3) in the GCC compile farm.  Not saying you should,
> of course, it's just an option.
>   

I will look into it.

> [...]
>> This issue should be fixed in commit
>> e3b14d8555c5cabad03b9ccaa6aa1976ed590201 on the dejagnu-1.6.3 branch.  
>> After the 1.6.3 release, bugfixes on that branch will be forward-ported to
>> master.
>>     
>
> Unfortunately, I got to testing this only now (with rc2), and the
> results are not encouraging, unfortunately:
>
> * first, I get
>
>   runtest: !: not found
>
>   another construct not supported by the original bourne shell.  While
>   looking at this, I noticed that this is in
>
> if ! command -v "$expectbin" > /dev/null ; then
>
>   However, /bin/sh doesn't have an internal command either.  As it
>   happens, an /usr/bin/command exists for POSIX.1 compatibility, which
>   just calls /usr/bin/ksh.  This may be ok in this particular case, but
>   if it works in general from /bin/sh scripts remains a question.
>   

The system providing an external command(1) command should not be a 
problem, even if its implementation using the /usr/bin/ksh builtin is 
somewhat amusing.

This also suggests that we are "almost there" in terms of making runtest 
run with Solaris 10 /bin/sh; the very next command in the script is to 
exec Expect, which gets us away from the shell and its limitations.  
(Give up?  One step away from success?  No!)

The Autoconf shell guidelines specifically say that using ! like that in 
"if" is not portable.  This is fixed in commit 
c35660505e4ec0a79a1ca0e5ea88d6e78caa1778 which applies this patch to 
runtest:

8<----
diff --git a/runtest b/runtest
index b2e0a4c..807a6ae 100755
--- a/runtest
+++ b/runtest
@@ -152,7 +152,7 @@ if [ -z "$runpath" ] ; then
     exit 1
 fi
 
-if ! command -v "$expectbin" > /dev/null ; then
+if command -v "$expectbin" > /dev/null ; then :; else
     echo "ERROR: unable to find expect in the PATH"
     exit 1
 fi
8<----

> * There's also
>
> Native configuration is /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/config.guess: syn
> tax error at line 35: `me=$' unexpected
>
>   another POSIX shell construct, and less easily avoided because this
>   comes from upstream.
>   

This is a bigger problem.  I do not want to maintain forked config.guess 
and/or config.sub scripts.

> * Next, I had
>
> /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu: Variants=gawk awk tcl exp bash sh: is not an identifier

This seems to be a minor issue, fixed in commit 
40c351f14a4342d63dcca6a9c72ae81486a1f375 which applies this patch to 
dejagnu:  (but see below)

8<----
diff --git a/dejagnu b/dejagnu
index 695c4e5..44c8962 100755
--- a/dejagnu
+++ b/dejagnu
@@ -53,7 +53,8 @@
 # ##end
 
 # list of extensions supported for commands in priority order
-readonly Variants="gawk awk tcl exp bash sh"
+Variants='gawk awk tcl exp bash sh'
+readonly Variants
 
 ## Recognize options
 
8<----


>   I'd already noticed another instance of the problem after I'd sent the
>   original PR: while e.g. autoconf-generated configure and related in
>   gcc are very careful to invoke config.guess only prefixed with $SHELL,
>   runtest.exp exec's it directly, again falling into the trap of POSIX
>   shell constructs (also $(), maybe more).
>
> [...]
>
> Seeing all this suggests to me that my suggestion of substituting
>
> #!@SHELL@
>
> into the DejaGnu shell scripts at build time (and making sure other
> invocations of shell scripts are prefixed with a POSIX shell, too) is a
> safer approach and avoids cripling the scripts with bourne shell constructs
> that cannot even be tested reliably.

So far, none of these changes have been close to crippling the scripts.

Using "#!@SHELL@" is not an option because I want DejaGnu to be able to 
run from the source tree, at least on reasonably modern Free systems.  
The ability to run DejaGnu from a Git checkout should help make up for 
the loss of support for the old Cygnus tree layout.  However, 
"#!/bin/sh" on the first line is similarly unique, so...

>  After all, users of Solaris 10 (or
> any other system without a POSIX /bin/sh) are well accustomed to setting
> CONFIG_SHELL to either /bin/ksh or /bin/bash to avoid issues with the
> ancient bourne shell.
>
> I've tried that by hacking #!/bin/ksh into the dejagnu and runtest
> scripts in the source dir as well as prefixing the exec ... config.guess
> in runtest.exp with /bin/ksh either.  This way, all runtest tests PASS.
>   

... I am considering arranging for configure to patch the shell scripts 
exactly like that.  At minimum, the config.* scripts that get installed 
will need to be patched to use the configure SHELL in their #! lines 
even if I do manage to get the launcher scripts to run under Solaris 10 
/bin/sh.

Since the runtest launcher script has previously run under ancient 
Bourne shells, I consider it failing to run while any systems still use 
such ancient shells to be a regression that needs to be fixed.  The 
dejagnu launcher script is newer and more complex, so it may actually 
need a newer shell, but (as you have reported) there still seems to be a 
problem with Solaris 10 /bin/ksh.

> However, there are more errors still:
>
>                 === launcher Summary ===
>
> # of expected passes		5
> # of unexpected failures	45
> # of unsupported tests		2
>   

Can you post the launcher.log file?  The dejagnu script is fairly 
simple, and I suspect that I may be able to deduce the causes of those 
failures, especially if they are like the "report-card" failure that 
follows.

> 		=== report-card Summary ===
>
> # of unresolved testcases	2
>
> Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card.all/onetest
> .exp ...
> spawn /bin/sh -c cd /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card
> .all/onetest && exec /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu report-card^
> M
> expr: syntax error
> ERROR: could not resolve command dejagnu-report-card
>
> There are obviously more hardcoded uses of /bin/sh here and elsewhere,
> but I haven't looked for those yet.

That hardcoded use of /bin/sh only changes directory and execs 
$LAUNCHER, which should run with /bin/ksh if you have patched its #! line.

The "dejagnu" script is run, but fails to locate the report-card 
subcommand.  I would be interested in the output of "/bin/ksh -x 
./dejagnu report-card" in the source directory, assuming that "-x" 
produces an execution trace from ksh as it does from bash (... and 
likewise for Solaris 10 /bin/sh after applying the patch above to change 
the use of the readonly command).  There are two likely candidates I see 
for this error:  one is an `expr :` match to detect a leading "-" and 
the other is a possibility that `expr $# \> 0` in a while loop test is 
somehow being executed as `expr \> 0` under some condition.  Both of 
these hypotheses imply unexpected behavior if not outright bugs in 
Solaris 10.

There is a possibility here that dejagnu may be tickling a bug in 
Solaris 10 /bin/ksh and may work with /bin/sh, or may not work with 
either of them.


-- Jacob




Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 31 Mar 2021 12:23:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 31 08:23:42 2021
Received: from localhost ([127.0.0.1]:53730 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lRZss-0001Bu-0O
	for submit <at> debbugs.gnu.org; Wed, 31 Mar 2021 08:23:42 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:58160)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lRZso-0001Bj-Uy
 for 47382 <at> debbugs.gnu.org; Wed, 31 Mar 2021 08:23:39 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id C19EBB2863
 for <47382 <at> debbugs.gnu.org>; Wed, 31 Mar 2021 14:23:36 +0200 (CEST)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024) with ESMTP id eqL76UBb3BjH for <47382 <at> debbugs.gnu.org>;
 Wed, 31 Mar 2021 14:23:35 +0200 (CEST)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 97FF6B2A01
 for <47382 <at> debbugs.gnu.org>; Wed, 31 Mar 2021 14:23:35 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1617193415;
 bh=6/1U9xwyGF0dSSAS0gJPvlmeEqTR5VWy4kjuyST58AM=;
 h=From:To:Subject:References:Date:In-Reply-To:From;
 b=f/oqg/tNsoft0x44Uy16ruHNJDK6UiA9E0VMHEfPwb0/ttSSSjWdSodB1SrsI3OGy
 gWVLmhI0rquYTcvhL8PFm4hXruiOdGbQCG04DLxj3O8JkTcvdFRM5ZTZhtgUL6F9Dj
 zyqFo0Ssvdyu6UsgRcpur4zzEkHQyZNA2q+UHPGxSvzYXmnOTyussXlqtSmGuA4pTa
 O6edEdYVjgfyTAs9jJuufoMttre4YygOQv6nlt6cTr3OxLLxjrVeuAMXAUVI2lDbSn
 QYPE6uLJYbSrjOQJR3Lh3boF8523U1bxMSCr33ieJEQ327A00OPgWtv2YmdGc6MeIA
 kLO4V1wG56jfA==
From: Rainer Orth <ro@HIDDEN>
To: 47382 <at> debbugs.gnu.org
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
 <605D6737.7000907@HIDDEN>
Date: Wed, 31 Mar 2021 14:23:35 +0200
In-Reply-To: <605D6737.7000907@HIDDEN> (Jacob Bachmeyer's message of "Thu, 
 25 Mar 2021 23:46:47 -0500")
Message-ID: <yddtuormrzs.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 47382
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: -3.3 (---)

Jacob Bachmeyer <jcb62281@HIDDEN> writes:

> I had expected that some system out there might do this when I resisted
> pressure to more aggressively use newer shell constructs in the 
> "dejagnu" multipurpose launcher script.
>
> The previous maintainer had changed this because shellcheck complains about
> the old `backticks` form.  I have chosen rework the script to return to ``
> instead of $() and `expr ...` instead of $((...)) before rc2.
>
> As I am unable to test on Solaris, these reports are particularly helpful.

As it happens, you could get access: there are gcc210 (Solaris 10) and
gcc211 (Solaris 11.3) in the GCC compile farm.  Not saying you should,
of course, it's just an option.

> A patch has been pushed to Savannah on the "dejagnu-1.6.3" branch and will
> be included in release candidate 2.  While I would prefer if you could
> confirm that the patch fixes this bug prior to releasing rc2, I will
> understand if you do not have Git on your Solaris machine.

While I don't (any longer), that wouldn't matter: I can easily check out
the sources on a newer system and used it from there via NFS.

> This issue should be fixed in commit
> e3b14d8555c5cabad03b9ccaa6aa1976ed590201 on the dejagnu-1.6.3 branch.  
> After the 1.6.3 release, bugfixes on that branch will be forward-ported to
> master.

Unfortunately, I got to testing this only now (with rc2), and the
results are not encouraging, unfortunately:

* first, I get

  runtest: !: not found

  another construct not supported by the original bourne shell.  While
  looking at this, I noticed that this is in

if ! command -v "$expectbin" > /dev/null ; then

  However, /bin/sh doesn't have an internal command either.  As it
  happens, an /usr/bin/command exists for POSIX.1 compatibility, which
  just calls /usr/bin/ksh.  This may be ok in this particular case, but
  if it works in general from /bin/sh scripts remains a question.

* There's also

Native configuration is /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/config.guess: syn
tax error at line 35: `me=$' unexpected

  another POSIX shell construct, and less easily avoided because this
  comes from upstream.

  I'd already noticed another instance of the problem after I'd sent the
  original PR: while e.g. autoconf-generated configure and related in
  gcc are very careful to invoke config.guess only prefixed with $SHELL,
  runtest.exp exec's it directly, again falling into the trap of POSIX
  shell constructs (also $(), maybe more).

* Next, I had

/vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu: Variants=gawk awk tcl exp bash sh: is not an identifier

  from

readonly Variants="gawk awk tcl exp bash sh"

  yet one more.

Seeing all this suggests to me that my suggestion of substituting

#!@SHELL@

into the DejaGnu shell scripts at build time (and making sure other
invocations of shell scripts are prefixed with a POSIX shell, too) is a
safer approach and avoids cripling the scripts with bourne shell constructs
that cannot even be tested reliably.  After all, users of Solaris 10 (or
any other system without a POSIX /bin/sh) are well accustomed to setting
CONFIG_SHELL to either /bin/ksh or /bin/bash to avoid issues with the
ancient bourne shell.

I've tried that by hacking #!/bin/ksh into the dejagnu and runtest
scripts in the source dir as well as prefixing the exec ... config.guess
in runtest.exp with /bin/ksh either.  This way, all runtest tests PASS.

However, there are more errors still:

                === launcher Summary ===

# of expected passes		5
# of unexpected failures	45
# of unsupported tests		2

		=== report-card Summary ===

# of unresolved testcases	2

Running /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card.all/onetest
.exp ...
spawn /bin/sh -c cd /vol/gcc/obj/dejagnu/dejagnu-1.6.3-rc2/testsuite/report-card
.all/onetest && exec /vol/src/gnu/dejagnu/dejagnu-1.6.3-rc2/dejagnu report-card^
M
expr: syntax error
ERROR: could not resolve command dejagnu-report-card

There are obviously more hardcoded uses of /bin/sh here and elsewhere,
but I haven't looked for those yet.




Information forwarded to bug-dejagnu@HIDDEN, jcb62281@HIDDEN:
bug#47382; Package dejagnu. Full text available.
Owner recorded as jcb62281@HIDDEN Request was from Jacob Bachmeyer <jcb62281@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 47382 <at> debbugs.gnu.org:


Received: (at 47382) by debbugs.gnu.org; 26 Mar 2021 04:46:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 26 00:46:58 2021
Received: from localhost ([127.0.0.1]:40143 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lPeN7-0005TK-Uj
	for submit <at> debbugs.gnu.org; Fri, 26 Mar 2021 00:46:58 -0400
Received: from mail-oo1-f54.google.com ([209.85.161.54]:36637)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jcb62281@HIDDEN>) id 1lPeN6-0005T7-18
 for 47382 <at> debbugs.gnu.org; Fri, 26 Mar 2021 00:46:56 -0400
Received: by mail-oo1-f54.google.com with SMTP id
 w1-20020a4adec10000b02901bc77feac3eso1031409oou.3
 for <47382 <at> debbugs.gnu.org>; Thu, 25 Mar 2021 21:46:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-transfer-encoding;
 bh=yr9G4cVo2cVBP5pXTYwFw17sXh+a3F72Edopy5TYa1A=;
 b=QYB8XBMwizehr4IPF4RlPZLqgTLNV6gxJ//s/LrBPsrLnexq92FrXLEitEeXkVPgIM
 cRiUDBeaxF9O+lFEVLZ5xEHbqOR0O7A9S0xRpDFlBEgkADPvJmHjJN2TiOTetWPVknqA
 dlTubPL+mbKU+DhVqu4MuJTYJ+lpTsrXgx7JwWo4BCWCwjjug0D2/mGjqk3+VuvRyj2h
 Lt5yjGXz9+wC3M10XoR4pG9vxbsKvO2nEbIlOrydOKf/ais7rn9aZFe5/6oV7hlRTr/a
 /ZRpNzkMf9Hc6Ki7iNgyCgWGHlxuQYdbkj2LLrNroU0dy+mO2O1CE4KfaYADspo9cQ1U
 64qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:message-id:date:from:reply-to:user-agent
 :mime-version:to:cc:subject:references:in-reply-to
 :content-transfer-encoding;
 bh=yr9G4cVo2cVBP5pXTYwFw17sXh+a3F72Edopy5TYa1A=;
 b=OKCX1x/u3YlUCOK6qOXqaqTeqr+uC+xvIHWT5hRbeDWqasHHBM/XyeIqzRrEO41y2Q
 jldA918X3GRvDdfbEx8uM+VHXfmoceMwjWjcImLIZzwPQiBHrI7hLy5dzYrK6byUAKIN
 XDO68KOnhmVlbN+XyrGvvc+7iLHC7WHnFsjQxPScUXp+UvhBopMefyulMqwXjlyVtoS8
 TAvnK+cooBxf+EK6bOVNP9MD/2ipiWbZvZGTeWRQQcH2RWNi869QCfFJPFErfWv8ZO0q
 MxmRceyA1AIrlEo24jDUFwbtuBbSpQCuwv1cQJbAJCsMnJrPyUiyw8pjHlLj1gJoP//b
 SYew==
X-Gm-Message-State: AOAM533rfK0AWHgzOcZ8/qQrrB2zAb8l3L4n4Wsiu/SRtos9U/ZiP/uK
 By0BRm3N24pPMhC5itdBLCM5wS2FRJY=
X-Google-Smtp-Source: ABdhPJwfCd5VTlMk90xOJ8bnKdsOehGmP/ffMCPcB1ptQZFXLO4WDfWtBbMggfRZvDBQtnDa3Nor+Q==
X-Received: by 2002:a4a:1104:: with SMTP id 4mr9899470ooc.57.1616734010287;
 Thu, 25 Mar 2021 21:46:50 -0700 (PDT)
Received: from [192.168.2.42] (adsl-70-133-144-213.dsl.ablntx.sbcglobal.net.
 [70.133.144.213])
 by smtp.gmail.com with ESMTPSA id w21sm1542488oiw.33.2021.03.25.21.46.49
 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Thu, 25 Mar 2021 21:46:49 -0700 (PDT)
Message-ID: <605D6737.7000907@HIDDEN>
Date: Thu, 25 Mar 2021 23:46:47 -0500
From: Jacob Bachmeyer <jcb62281@HIDDEN>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
 rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17
 Mnenhy/0.7.6.0
MIME-Version: 1.0
To: Rainer Orth <ro@HIDDEN>
Subject: Re: bug#47382: runtest doesn't work with Solaris 10 /bin/sh
References: <yddlfabplpd.fsf@HIDDEN>
In-Reply-To: <yddlfabplpd.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47382
Cc: 47382 <at> debbugs.gnu.org
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>
Reply-To: jcb62281@HIDDEN
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Rainer Orth wrote:
> When trying DejaGnu 1.6.3 rc1 on Solaris 10, it failed immediately with:
>
> runtest: syntax error at line 43: `execpath=$' unexpected
>
> The script hardcodes #!/bin/sh, but the Solaris 10 /bin/sh is
> effectively the old Bourne Shell and doesn't support $().
>
> There are several options, I believe:
>
> * Substitute a shell that does (like /bin/ksh in the Solaris 10 case).
>
> * Rework the script to avoid the construct.
>
> * Give up in horror and declare Solaris 10 unsupported, preferably with
>   a decent error message at configure time.

I had expected that some system out there might do this when I resisted 
pressure to more aggressively use newer shell constructs in the 
"dejagnu" multipurpose launcher script.

The previous maintainer had changed this because shellcheck complains 
about the old `backticks` form.  I have chosen rework the script to 
return to `` instead of $() and `expr ...` instead of $((...)) before rc2.

As I am unable to test on Solaris, these reports are particularly 
helpful.  A patch has been pushed to Savannah on the "dejagnu-1.6.3" 
branch and will be included in release candidate 2.  While I would 
prefer if you could confirm that the patch fixes this bug prior to 
releasing rc2, I will understand if you do not have Git on your Solaris 
machine.

This issue should be fixed in commit 
e3b14d8555c5cabad03b9ccaa6aa1976ed590201 on the dejagnu-1.6.3 branch.  
After the 1.6.3 release, bugfixes on that branch will be forward-ported 
to master.

I plan to look at the other two bugs you reported tomorrow.


-- Jacob





Information forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 25 Mar 2021 10:33:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 25 06:33:15 2021
Received: from localhost ([127.0.0.1]:37230 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lPNIg-0000bw-Oj
	for submit <at> debbugs.gnu.org; Thu, 25 Mar 2021 06:33:15 -0400
Received: from lists.gnu.org ([209.51.188.17]:34564)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ro@HIDDEN>) id 1lPNIe-0000bn-QT
 for submit <at> debbugs.gnu.org; Thu, 25 Mar 2021 06:33:13 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48108)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ro@HIDDEN>)
 id 1lPNIe-0002A9-IT
 for bug-dejagnu@HIDDEN; Thu, 25 Mar 2021 06:33:12 -0400
Received: from smtp.cebitec.uni-bielefeld.de ([129.70.160.84]:54376)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ro@HIDDEN>)
 id 1lPNIa-0006Hn-9r
 for bug-dejagnu@HIDDEN; Thu, 25 Mar 2021 06:33:12 -0400
Received: from localhost (localhost [127.0.0.1])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id B31E840A5
 for <bug-dejagnu@HIDDEN>; Thu, 25 Mar 2021 11:33:03 +0100 (CET)
X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE
Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])
 by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,
 port 10024) with ESMTP id b3kdvaYRGIBD for <bug-dejagnu@HIDDEN>;
 Thu, 25 Mar 2021 11:33:03 +0100 (CET)
Received: from manam.CeBiTec.Uni-Bielefeld.DE (p50854142.dip0.t-ipconnect.de
 [80.133.65.66])
 by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 452A53D4E
 for <bug-dejagnu@HIDDEN>; Thu, 25 Mar 2021 11:33:03 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1616668383;
 bh=r5ZKctyBygHbJLv5F4H5YgaWDXhov8+oOIH0TDoeuDc=;
 h=From:To:Subject:Date:From;
 b=EhVsaR/54oANji/Y+5V5xYA6XYcgj3iz2+rpCb7fpTzX3x98OKM5iA6MdarzWsk+s
 S8PPPUyxpc32AAUxiLT/5gQa24w+CIkvKtsQkYu0qRM57WwTKjpEdyzNkdkVfo8vyo
 7Qpp4bD5lCrvGRNfUnyBdCrg+zkSuspRs3JurLhC6alWhdOJSTXFEwIavFVVMj5cX1
 AEKVlDiGpaT++KYWnUi1rBz6QZDq8zF9Rg3/JfWinDigzB5G01h5PAROf3OGIWKY7U
 YBLqL4zpYXz8XwMad20bU/6UDdC/1JgvyaCgkoSK6Pm7iUtiBrjgCc8zrDfTtQG6r2
 0Iy+vmpYrrCTw==
From: Rainer Orth <ro@HIDDEN>
To: bug-dejagnu@HIDDEN
Subject: runtest doesn't work with Solaris 10 /bin/sh
Date: Thu, 25 Mar 2021 11:33:02 +0100
Message-ID: <yddlfabplpd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v)
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: none client-ip=129.70.160.84;
 envelope-from=ro@HIDDEN; helo=smtp.CeBiTec.Uni-Bielefeld.DE
X-Spam_score_int: -42
X-Spam_score: -4.3
X-Spam_bar: ----
X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3,
 SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: submit
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: -3.3 (---)

When trying DejaGnu 1.6.3 rc1 on Solaris 10, it failed immediately with:

runtest: syntax error at line 43: `execpath=$' unexpected

The script hardcodes #!/bin/sh, but the Solaris 10 /bin/sh is
effectively the old Bourne Shell and doesn't support $().

There are several options, I believe:

* Substitute a shell that does (like /bin/ksh in the Solaris 10 case).

* Rework the script to avoid the construct.

* Give up in horror and declare Solaris 10 unsupported, preferably with
  a decent error message at configure time.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University




Acknowledgement sent to Rainer Orth <ro@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-dejagnu@HIDDEN. Full text available.
Report forwarded to bug-dejagnu@HIDDEN:
bug#47382; Package dejagnu. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 16 Apr 2021 22:00:01 UTC

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