On 11/28/2010 08:29 PM, Bruno Haible wrote:
> But /bin/sh of Solaris 11 Express 2010-11 has a bug here: When the last
> argument to be passed is an empty string, it is omitted.

Thanks for tracking this down, and for reporting the bug upstream.
Here's hoping that it gets fixed upstream before Solaris 11 hits
mainstream, because it would be a rather large number of scripts that
would have to be updated to avoid the bug.

> Possible workarounds are:
>   - Use /bin/bash instead of /bin/sh.
>   - Test the number of arguments explicitly against 0, like this:
>       case $# in
>         0) exec prog;;
>         *) exec prog "$@";;
>       esac

The autoconf manual already mentions this as a workaround for older zsh
where ${1+"$@"} didn't work correctly, although those versions of zsh
also supported a workaround via a 'global alias'; unfortunately, Solaris
11 is unlikely to have the 'global alias' feature of zsh to make it
easier to avoid the problem with a single up-front setting.  At least
modern zsh no longer suffers from bugs in this area.

> I've reported this as a bug in Solaris 11 Express. Since that release
> is declared as not to be used for production or business use, I think
> there's no need to modify the Autoconf manual or Libtool at this point;
> just wait for the next Solaris 11 release, next year.

I agree with waiting for a mainstream release.

-- 
Eric Blake   ebl...@redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to