public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Carl Love <cel@us.ibm.com>
To: will schmidt <will_schmidt@vnet.ibm.com>,
	Pedro Alves <pedro@palves.net>,
	Kevin Buettner <kevinb@redhat.com>,
	gdb-patches@sourceware.org
Cc: Rogerio Alves <rogealve@br.ibm.com>, cel@us.ibm.com
Subject: [PATCH V2] PowerPC: fix for gdb.base/eh_return.exp
Date: Mon, 09 May 2022 12:17:20 -0700	[thread overview]
Message-ID: <c13f1fbbcf5c775c59e678ebabdcbc4ca75b4472.camel@us.ibm.com> (raw)
In-Reply-To: <099c8f8d8729a0051f83a034d62c18f03c789167.camel@vnet.ibm.com>

Will, Pedro, Kevin, GDB maintainers:

Sorry, resend, the first attempt was missing the mailing list.

I have updated the patch per the comments from Will.  The new version
of the patch uses a PowerPC specific gcc option to suppress the
generation of the Traceback Table information.  The Traceback
information is contained in the .long statements following the last
instruction in the function.  Now the existing test to locate the last
instruction in the function works without any changes.

Note, the use of the gcc mtraceback option is not valid on other
architectures.

I have tested the patch on Power 10 and Intel.

Please let me know if this patch is acceptable.  Thanks for the input
and help with the patch.

                          Carl Love
-----------------------------------------------------------------

PowerPC: fix for gdb.base/eh_return.exp

Disable the Traceback Table generation on PowerPC.  The Traceback Table
consists of multiple .long statement following the final instruction in
the function.  Generation of the .long statements needs to be disabled with
the PowerPC specific gcc compiler option -mtraceback=no so the test will
correctly locate the address of the bclr instruction before the statement
"End of assembler dump."
---
 gdb/testsuite/gdb.base/eh_return.exp | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/eh_return.exp b/gdb/testsuite/gdb.base/eh_return.exp
index df55dbc72da..3a49464af63 100644
--- a/gdb/testsuite/gdb.base/eh_return.exp
+++ b/gdb/testsuite/gdb.base/eh_return.exp
@@ -18,8 +18,30 @@
 
 standard_testfile
 
+if {[istarget "powerpc*"]} then {
+    # PowerPC generates a Traceback Table following each function by default.
+    # The .long statements following the function contain the Traceback Table
+    # information.  For example:
+    #   Dump of assembler code for function eh2:
+    #   0x00000000100009e0 <+0>:     lis     r2,4098
+    #   ...
+    #   0x0000000010000b04 <+292>:   add     r1,r1,r10
+    #   0x0000000010000b08 <+296>:   blr
+    #   0x0000000010000b0c <+300>:   .long 0x0
+    #   0x0000000010000b10 <+304>:   .long 0x1000000
+    #   0x0000000010000b14 <+308>:   .long 0x1000180
+    #   End of assembler dump.
+    #
+    # Disable the Traceback Table generation, using the PowerPC specific
+    # gcc option, so the test gdb_test_multiple "disassemble eh2" will match
+    # the blr instruction not the .long statement.
+    set compile_flags {debug nopie additional_flags=-mtraceback=no}
+} else {
+    set compile_flags {debug nopie}
+}
+
 if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
-	 {debug nopie}]} {
+	 $compile_flags]} {
     return -1
 }
 
-- 
2.31.1



  reply	other threads:[~2022-05-09 19:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-05 20:07 [PATCH] " Carl Love
2022-05-06 18:08 ` Kevin Buettner
2022-05-06 21:16   ` Pedro Alves
2022-05-06 22:45     ` will schmidt
2022-05-09 19:17       ` Carl Love [this message]
2022-05-09 20:57         ` [PATCH V2] " will schmidt
2022-05-10 11:43           ` Pedro Alves
2022-05-11 21:52             ` Carl Love
2022-05-11 21:52           ` [PATCH V3] " Carl Love
2022-05-11 22:48             ` Kevin Buettner
2022-05-12 16:00               ` Carl Love
2022-06-02 16:52               ` Carl Love
2022-06-08 18:32                 ` Pedro Alves
2022-06-08 18:51                   ` Carl Love
2022-06-09 15:24                   ` Carl Love
2022-06-02 17:00             ` [PATCH V4] " Carl Love
2022-06-07 17:54               ` will schmidt
2022-06-08 15:33                 ` [PATCH V5] " Carl Love
2022-06-08 15:36                   ` Carl Love
2022-06-08 16:29                     ` will schmidt
2022-07-13 17:07                     ` [Ping] " Carl Love
2022-07-15 13:41                     ` Ulrich Weigand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c13f1fbbcf5c775c59e678ebabdcbc4ca75b4472.camel@us.ibm.com \
    --to=cel@us.ibm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kevinb@redhat.com \
    --cc=pedro@palves.net \
    --cc=rogealve@br.ibm.com \
    --cc=will_schmidt@vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).