Re: [GNU Autoconf 2.72e] testsuite: 11 119 261 failed on Solaris 11.4 x86

Paul Eggert <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Organization UCLA Computer Science Department
Message-ID <[email protected]>
On 2024-01-02 10:40, Alan Coopersmith wrote:
> On 12/21/23 13:46, Alan Coopersmith wrote:
>> On Solaris 11.4, /bin/sh is currently a somewhat modified ksh93u+ -
>> we're working to resync with the new community upstream still.
>>
>> In that shell, when I run:
>>    printf "test" </dev/null >/dev/full
>> it prints nothing and $? is set to 0.
>>
>> The same happens with /usr/bin/printf instead of the shell builtin.
> 
> The engineer working to resync our ksh93 with the latest upstream code from
> https://github.com/ksh93/ksh has confirmed this is already fixed upstream
> for the ksh builtin.  From a quick look, this appears to be thanks to
> https://github.com/ksh93/ksh/commit/93e15a303585df3ecf8184818f2d5ff569ff2ba1
> but https://github.com/ksh93/ksh/issues/313 notes that work remains for
> other builtins.
> 

Unfortunately that ksh93 still isn't working for printf. After I built 
its current commit 799324b1ffcc2deb55c72547baa1b5ab5918a651 on Fedora 39:

$ ksh -c 'printf "xyzzy\n" || printf "ouch\n" >&2' >/dev/full
ouch
xyzzy
$

Whereas Bash 5.2.21(1) does the right thing:

$ bash -c 'printf "xyzzy\n" || printf "ouch\n" >&2' >/dev/full
bash: line 1: printf: write error: No space left on device
ouch

strace indicates that the ksh93 attempts to write "xyzzy\n" four times 
(!) to standard output and eventually gives up, redirects stderr to 
stdout, and writes "xyzzzy\n" successfully to stderr.

What a mess, huh?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.