This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix signull test case


Hello,

the signull.exp test case fails when running under a 2.6 kernel,
because it uses longjmp to leave a SIGSEGV handler.  This results
in the signal remaining blocked for the rest of program execution,
and the second segmentation violation triggered by the test case
simply terminates the program.  The fix is to use siglongjmp.

Hmm, checking POSIX, it was left unspecified. I choose to read the wrong man page :-(


Also, the test case uses 'signal' to install the signal handler;
according to POSIX it is undefined whether this routine installs
the handler with the 'one-shot' property or not.  (Apparently,
on BSD-like systems 'one-shot' is the default.)

Very very old systems. Modern BSD systems leave the signal in place.


Thus, I've also changed the test case to use sigaction instead,
to make sure the handler remains active across multiple invocations.
(This isn't currently an actual problem on Linux systems -- if you
prefer I can remove this part.)

Tested on s390-ibm-linux and s390x-ibm-linux, fixes one test suite
failure.

Andrew




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]