Subject: Re: bug#20733: coreutils build problem

From: Eric Blake <[email-masked]>
Date: Thu, 04 Jun 2015 13:34:08 -0600

[adding autoconf]

On 06/04/2015 01:17 PM, Paul Eggert wrote:
> 
> On 06/04/2015 09:41 AM, Michael Felt wrote:
>>   GEN      src/coreutils.h
>> /bin/sh: 0403-057 Syntax error at line 1 : `;' is not expected.
> 

> Port to POSIX shell, which doesn't allow 'for i in ; do ...'.

Actually, POSIX _does_ allow for missing words between 'in' and the
terminator (; or newline) before 'do' (whether by a word that expands to
nothing, or by omission of words), requiring that the body of the for
statement is skipped in that case:

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_04

But it is also true that older shells did not always follow this rule,
so you are indeed better off always supplying at least one word that
won't be expanded into nothingness.

Hmmm, I thought that autoconf would document it as a portability
pitfall, but I don't see it under 'for' in this link:

https://www.gnu.org/software/autoconf/manual/autoconf.html#Limitations-of-Builtins

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org