Hi.

I am referring to the autoconf manual that I found on savannah.org under path 
/autoconf/manual/autoconf-2.63.

Issue 1:
---------

There it says in section "Limitation of Shell Builtins":

  Posix says that ‘trap - 1 2 13 15’ resets the traps for the specified signals 
to
  their default values, but many common shells (e.g., Solaris /bin/sh) 
misinterpret
  this and attempt to execute a “command” named - when the specified 
  conditions arise. There is no portable workaround, except for ‘trap - 0’, for
  which ‘trap ’’ 0’ is a portable substitute.

I do not entirely agree with the latter statement.  It seems that 'trap 1 2 13 
15' (without any command) reset the traps in a reasonably portable way, as 
documented also in the sh man pages. I tested the following on AIX, HP-UX 
(SPARC & x86-64), HP-UX (PA-RISC & IA64), Tru64, Linux (x86, x86-64, IA64, PPC) 
(yes, I wanted to show off a bit):

  $ /bin/sh -c 'trapped=0; trap "echo trapped; trapped=1" 1 2 3 15; while true; 
do sleep 1; if test $trapped = 1; 
  then trap 1 2 3 15; fi; done' &
  [1] 1548526
  $ kill -15 1548526
  $ trapped

  $ kill -15 1548526
  $ 
  [1]+  Terminated              /bin/sh -c 'trapped=0; trap "echo trapped; 
trapped=1" 1 2 3 15; while true; do sleep 1; if test
  $trapped = 1; then trap 1 2 3 15; fi; done'

Issue 2:
---------

On Solaris 9, /bin/sh does not execute a trap on exit if in a parenthesised 
sub-shell if the last command is not a built-in:

  $ ( trap "echo foo" 0; :; true )
  $ ( trap "echo foo" 0; true; : )
  foo

Of course, the error diagnosis may not entirely precise. Better it would be to 
say: "On Solaris 9, /bin/sh may not execute a trap on exit if the trap is 
defined in a parenthesised sub-shell."

A workaround may be to always exit explicitly with "exit $?" from the sub-shell.

Regards

Jens

Arcor.de Gaming Area - kostenfrei daddeln bis der Arzt kommt!
Jetzt checken und aus über 80 Spielen wählen!
http://www.arcor.de/footer-gaming/


_______________________________________________
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf

Reply via email to