Re: [PATCH] testsuite: sigall.exp: handle SIGLOST/SIGPWR conflict in sparc64 targets

Jose E. Marchesi
2013-12-03T11:58:24Z

ping

Hi.

In sparc64 SIGLOST and SIGPWR have the same signal number. The
following patch fixes gdb.base/sigall.exp accordingly.

Tested in sparc64-unknown-linux-gnu.

2013-10-23 Jose E. Marchesi <jose.marchesi@oracle.com>

* gdb.base/sigall.exp (test_one_sig): gdb identifies SIGLOST as a
SIGPWR in sparc64.

* gdb.base/sigall.c (main): In some targets SIGLOST and SIGPWR
have the same signal number. Handle this situation.

diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
index 110029d..68f3ecb 100644
--- a/gdb/testsuite/gdb.base/sigall.c
+++ b/gdb/testsuite/gdb.base/sigall.c
@@ -1083,7 +1083,7 @@ return 0;
int
gen_PWR ()
{
-#ifdef SIGPWR
+#if defined(SIGPWR) && (!defined (SIGLOST) || SIGPWR != SIGLOST)
kill (getpid (), SIGPWR);
#else
handle_PWR (0);
@@ -1662,7 +1662,7 @@ main ()
#ifdef SIGUSR2
signal (SIGUSR2, handle_USR2);
#endif
-#ifdef SIGPWR
+#if defined(SIGPWR) && (!defined (SIGLOST) || SIGPWR != SIGLOST)
signal (SIGPWR, handle_PWR);
#endif
#if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO)
diff --git a/gdb/testsuite/gdb.base/sigall.exp b/gdb/testsuite/gdb.base/sigall.exp
index b1b8597..4bfb199 100644
--- a/gdb/testsuite/gdb.base/sigall.exp
+++ b/gdb/testsuite/gdb.base/sigall.exp
@@ -39,12 +39,20 @@ proc test_one_sig {nextsig} {
set need_another_continue 1
set missed_handler 0
if $this_sig_supported then {
+ set esig $thissig
+
if { $thissig == "IO" } {
setup_xfail "i*86-pc-linuxoldld-gnu" "i*86-pc-linuxaout-gnu"
}
+ # In SPARC64 systems SIGLOST==SIGPWR and gdb identifies the raised
+ # signal as PWR.