Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Corinna Vinschen <vinschen@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: [RFA] dwarf2-frame.c: Support DW_EH_PE_textrel encoding
Date: Thu, 02 Oct 2003 20:07:00 -0000	[thread overview]
Message-ID: <20031002200652.GX11435@cygbert.vinschen.de> (raw)

Hi,

I'm not sure if the patch is actually 100% correct but I think it's
not far from that.

For a few weeks now, gcc emits the DW_EH_PE_textrel encoding for sh
and (AFAICS) ia64.  This encoding type is unsupported in gdb so far.
The below patch tries to accomodate this encoding.

Is the patch ok as it is?  On sh, the testcases failing with a gcc
emitting this encoding run through with the below patch and the
overall FAIL count is the same as before.

Corinna

	* dwarf2-frame.c (struct comp_unit): Add tbase member to store
	base for DW_EH_PE_textrel encodings.
	(read_encoded_value): Add a DW_EH_PE_textrel case.
	(dwarf2_build_frame_info): Set unit.tbase to beginning of text
	section.

Index: dwarf2-frame.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
retrieving revision 1.14
diff -u -p -r1.14 dwarf2-frame.c
--- dwarf2-frame.c	9 Sep 2003 03:31:07 -0000	1.14
+++ dwarf2-frame.c	2 Oct 2003 19:56:24 -0000
@@ -885,6 +885,9 @@ struct comp_unit
 
   /* Base for DW_EH_PE_datarel encodings.  */
   bfd_vma dbase;
+
+  /* Base for DW_EH_PE_textrel encodings.  */
+  bfd_vma tbase;
 };
 
 const struct objfile_data *dwarf2_frame_data;
@@ -1063,6 +1066,9 @@ read_encoded_value (struct comp_unit *un
     case DW_EH_PE_datarel:
       base = unit->dbase;
       break;
+    case DW_EH_PE_textrel:
+      base = unit->tbase;
+      break;
     case DW_EH_PE_aligned:
       base = 0;
       offset = buf - unit->dwarf_frame_buffer;
@@ -1523,6 +1529,7 @@ dwarf2_build_frame_info (struct objfile 
   unit.objfile = objfile;
   unit.addr_size = objfile->obfd->arch_info->bits_per_address / 8;
   unit.dbase = 0;
+  unit.tbase = 0;
 
   /* First add the information from the .eh_frame section.  That way,
      the FDEs from that section are searched last.  */
@@ -1546,6 +1553,11 @@ dwarf2_build_frame_info (struct objfile 
       got = bfd_get_section_by_name (unit.abfd, ".got");
       if (got)
 	unit.dbase = got->vma;
+
+      /* gcc emits the DW_EH_PE_textrel encoding type on sh and ia64 so far. */
+      got = bfd_get_section_by_name (unit.abfd, ".text");
+      if (got)
+	unit.tbase = got->vma;
 
       frame_ptr = unit.dwarf_frame_buffer;
       while (frame_ptr < unit.dwarf_frame_buffer + unit.dwarf_frame_size)

-- 
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.


             reply	other threads:[~2003-10-02 20:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-02 20:07 Corinna Vinschen [this message]
2003-10-02 22:10 ` Mark Kettenis
2003-10-03  8:09   ` Corinna Vinschen

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=20031002200652.GX11435@cygbert.vinschen.de \
    --to=vinschen@redhat.com \
    --cc=gdb-patches@sources.redhat.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