This is the mail archive of the gdb-patches@sourceware.org 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] testsuite: sigall.exp: handle SIGLOST/SIGPWR conflict in sparc64 targets


    >     +	# In SPARC64 systems SIGLOST==SIGPWR and gdb identifies the raised
    >     +	# signal as PWR.
    
    Change that into "On Linux SPARC64 systems..."
    
    With that change, this is fine with me.

Ok.  Patch amended below and committed.
(By mistake I pushed a wrong date in the testsuite/ChangeLog entry and
had to fix that with a new commit.  Sorry about that!.)

2013-12-03  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..d531479 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"
 	}
+	# On Linux SPARC64 systems SIGLOST==SIGPWR and gdb identifies
+	# the raised signal as PWR.
+	if { $thissig == "LOST" && [ istarget "sparc64-*-linux*" ] } then {
+	    set esig "PWR"
+	}
+
 	gdb_test "continue" \
-	    "Continuing.*Program received signal SIG$thissig.*" \
-	    "get signal $thissig"
+	    "Continuing.*Program received signal SIG$esig.*" \
+		"get signal $esig"
     }
     if [ istarget "alpha-dec-osf3*" ] then {
 	# OSF/1-3.x is unable to continue with a job control stop signal.


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