Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Orjan Friberg <orjan.friberg@axis.com>
To: gdb-patches@sources.redhat.com
Cc: Mark Kettenis <kettenis@gnu.org>, hans-peter.nilsson@axis.com
Subject: Re: [CRIS] Reading core file selects "wrong" mach
Date: Fri, 14 Jan 2005 17:10:00 -0000	[thread overview]
Message-ID: <41E7FD09.4000002@axis.com> (raw)
In-Reply-To: <200412021718.iB2HIK1Q004810@elgar.sibelius.xs4all.nl>

Mark Kettenis wrote:
> I guess the correct way to do this would be adding
> elf_set_mach_from_flags() to `struct elf_backend_data', and use that
> in elf_core_file_p() to set the machine after the architecture has
> been set.

Maybe there's an easier way to do it - simply call the elf backend before 
processing the program headers, and have the backend set the correct machine 
like they all seem to do already.  Since the decision of whether to act on the 
e_flags value is pushed to the elf backend I don't see how this could break 
anything (which I assume could happen if it was done in elf_core_file_p).

(Of course, for this to have any effect in my particular case, e_flags must be 
set in the core file.)

I understand this will have to be sent to the binutils mailing list for 
approval, but I'd appreciate if someone on this list could tell me if it's a 
sane solution.

Oh, and no regressions on i386 and CRIS.


2005-01-14  Orjan Friberg  <orjanf@axis.com>

	* elfcore.h (elf_core_file_p): Move the call to elf_backend_object_p
	to allow the correct machine to be set before processing the program
	headers.


  Index: elfcore.h
===================================================================
RCS file: /cvs/src/src/bfd/elfcore.h,v
retrieving revision 1.20
diff -u -p -r1.20 elfcore.h
--- elfcore.h	7 Aug 2003 08:38:09 -0000	1.20
+++ elfcore.h	14 Jan 2005 17:03:02 -0000
@@ -214,6 +214,15 @@ elf_core_file_p (bfd *abfd)
  	goto fail;
      }

+  /* Let the backend double check the format and override global
+     information.  We do this before processing the program headers
+     to allow the correct machine (as opposed to just the default
+     machine) to be set, making it possible for grok_prstatus and
+     grok_psinfo to rely on the mach setting.  */
+  if (ebd->elf_backend_object_p
+      && (! (*ebd->elf_backend_object_p) (abfd)))
+    goto wrong;
+
    /* Process each program header.  */
    for (phindex = 0; phindex < i_ehdrp->e_phnum; ++phindex)
      if (! bfd_section_from_phdr (abfd, i_phdrp + phindex, (int) phindex))
@@ -222,12 +231,6 @@ elf_core_file_p (bfd *abfd)
    /* Save the entry point from the ELF header.  */
    bfd_get_start_address (abfd) = i_ehdrp->e_entry;

-  /* Let the backend double check the format and override global
-     information.  */
-  if (ebd->elf_backend_object_p
-      && (! (*ebd->elf_backend_object_p) (abfd)))
-    goto wrong;
-
    bfd_preserve_finish (abfd, &preserve);
    return abfd->xvec;


-- 
Orjan Friberg
Axis Communications


  parent reply	other threads:[~2005-01-14 17:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-01 14:00 Orjan Friberg
2004-12-01 16:14 ` Randolph Chung
2004-12-02 10:15   ` Orjan Friberg
2004-12-02 15:42     ` Randolph Chung
2004-12-02 17:18 ` Mark Kettenis
2004-12-13 15:12   ` Orjan Friberg
2004-12-13 16:09     ` Hans-Peter Nilsson
2004-12-13 20:22     ` Mark Kettenis
2005-01-14 17:10   ` Orjan Friberg [this message]
2005-01-14 18:40     ` Hans-Peter Nilsson

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=41E7FD09.4000002@axis.com \
    --to=orjan.friberg@axis.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=hans-peter.nilsson@axis.com \
    --cc=kettenis@gnu.org \
    /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