On 08/06/2012 02:56 PM, Eric Blake wrote: > 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. > Or even better, considering that OpenIndiana is quite a young and moving target, this bug could be reported to them, and hopefully fixed early ...
Regards, Stefano