Cygwin 32bit vs 64bit difference: SIGQUIT

Charles Wilson cygwin@cwilson.fastmail.fm
Wed Jul 31 13:27:00 GMT 2013


I was running the automake-1.12 test suite, and found a difference in 
behavior between the two cygwin's.  On 32bit, it appears to miss the 
SIGQUIT signal:


========== 32 bit ==========
PASS: t/tap-signal.tap 1 - "make check" fails
FAIL: t/tap-signal.tap 2 - count of test results
PASS: t/tap-signal.tap 3 - TAP driver catch test termination by signal 
SIGHUP
PASS: t/tap-signal.tap 4 - TAP driver catch test termination by signal 
SIGINT
FAIL: t/tap-signal.tap 5 - TAP driver catch test termination by signal 
SIGQUIT
PASS: t/tap-signal.tap 6 - TAP driver catch test termination by signal 
SIGKILL
PASS: t/tap-signal.tap 7 - TAP driver catch test termination by signal 
SIGPIPE
PASS: t/tap-signal.tap 8 - TAP driver catch test termination by signal 
SIGTERM
PASS: t/tap-signal.tap 9 - "make check" passes [--ignore-exit]
PASS: t/tap-signal.tap 10 - count of test results [--ignore-exit]

(the first FAIL is a dup of the second one).

========== 64 bit ==========
PASS: t/tap-signal.tap 1 - "make check" fails
PASS: t/tap-signal.tap 2 - count of test results
PASS: t/tap-signal.tap 3 - TAP driver catch test termination by signal 
SIGHUP
PASS: t/tap-signal.tap 4 - TAP driver catch test termination by signal 
SIGINT
PASS: t/tap-signal.tap 5 - TAP driver catch test termination by signal 
SIGQUIT
PASS: t/tap-signal.tap 6 - TAP driver catch test termination by signal 
SIGKILL
PASS: t/tap-signal.tap 7 - TAP driver catch test termination by signal 
SIGPIPE
PASS: t/tap-signal.tap 8 - TAP driver catch test termination by signal 
SIGTERM
PASS: t/tap-signal.tap 9 - "make check" passes [--ignore-exit]
PASS: t/tap-signal.tap 10 - count of test results [--ignore-exit]


Here's the detailed log of the SIGQUIT failure:

+ for sig in '$all_signals'
+ signal_caught 3
+ numeric=3
+ case $numeric in
+ symbolic=QUIT
+ case $numeric,$system in
+ sig_re='((SIG)?QUIT|3)'
+ wbound_re='($|[^a-zA-Z0-9_-])'
+ pfx_re='^ERROR: signal-3\.test'
+ case $am_tap_implementation in
+ rx='^ERROR: signal-3\.test .*terminated by signal 
((SIG)?QUIT|3)($|[^a-zA-Z0-9_-])'
+ desc='TAP driver catch test termination by signal SIGQUIT'
+ case " $blocked_signals " in
+ command_ok_ 'TAP driver catch test termination by signal SIGQUIT' env 
LC_ALL=C /usr/bin/grep -E '^ERROR: signal-3\.test .*terminated by signal 
((SIG)?QUIT|3)($|[^a-zA-Z0-9_-])' stdout
+ tap_directive_=
+ tap_reason_=
+ test 7 -gt 0
+ tap_description_='TAP driver catch test termination by signal SIGQUIT'
+ shift
+ test 6 -gt 0
+ case $1 in
+ break
+ tap_result_=ok
+ env LC_ALL=C /usr/bin/grep -E '^ERROR: signal-3\.test .*terminated by 
signal ((SIG)?QUIT|3)($|[^a-zA-Z0-9_-])' stdout
+ tap_result_='not ok'
+ result_ 'not ok' -D '' -r '' -- 'TAP driver catch test termination by 
signal SIGQUIT'
+ set +x
not ok 5 - TAP driver catch test termination by signal SIGQUIT
FAIL: t/tap-signal.tap 5 - TAP driver catch test termination by signal 
SIGQUIT


.... which doesn't really tell you much without the rest of the test 
driver machinery, but I include it for completeness.

The point of this post is the following question: is there a known 
difference in the signal handling code between cygwin32 and cygwin64 
that could explain why I see different behavior with respect to SIGQUIT?

--
Chuck

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list