On 08/04/2012 12:15 PM, Stefano Lattarini wrote:
> On current OpenIndiana (based on what once was OpenSolaris 11), the shell
> /bin/sh (which, differently from what happens on Solaris, is a true POSIX
> shell, thus worthy of consideration) somehow manages to "eat" the
> error message from 'rm' when that fails to remove a file due to lacking
> permission on the parent directory:
> 
>   $ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo"
>   $ echo rc = $?
>   rc = 1
>   $ /bin/bash -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo"
>   rm: foo not removed: Permission denied
>   $ echo rc = $?
>   rc = 2
>   $ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; env rm -f foo"
>   rm: foo not removed: Permission denied
>   $ echo rc = $?
>   rc = 2
> 
> That is probably due to an improper optimization, that is, the shell tries
> to be smart and remove the file itself instead of invoking 'rm', but fails
> spectacularly in the attempt.

Oh my.  Probably worth documenting in autoconf's list of shell
programming pitfalls.

>  
> -# Make it harder to experience false postives when grepping error messages.

s/postives/positives/

> +# Weird name, to make it harder to experience false positives when
> +# grepping error messages.
>  inst=__inst-dir__
>  
>  ./configure --prefix="$(pwd)/$inst"
> 

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to