[RFC] Cross core support

Alan Modra amodra@bigpond.net.au
Fri Jun 29 21:02:00 GMT 2001


On Sat, Jun 30, 2001 at 12:50:17PM +0930, Alan Modra wrote:
> 
> I made a few minor tweaks

bfd/ChangeLog
	* elfcore.h (elf_core_file_p): Call bfd_section_from_phdr directly
	instead of _bfd_elfcore_section_from_phdr.
	* elf-bfd.h (_bfd_elfcore_section_from_phdr): Remove.
	* elf.c (_bfd_elfcore_section_from_phdr): Remove.
	(_bfd_elfcore_make_pseudosection): Expedite tail-call.
	(elfcore_grok_prstatus): Likewise.
	(elfcore_grok_lwpstatus): Likewise.
	(bfd_get_elf_phdr_upper_bound): Likewise.
	(elfcore_make_note_pseudosection): Formatting.
	(_bfd_elfcore_strndup): Formatting.
	* elf32-mips.c (mips_elf_sym_is_global): Formatting.
	(_bfd_elf32_mips_grok_prstatus): Expedite tail-call.

-- 
Alan Modra

Index: bfd/elf-bfd.h
===================================================================
RCS file: /cvs/src/src/bfd/elf-bfd.h,v
retrieving revision 1.36
diff -u -p -r1.36 elf-bfd.h
--- elf-bfd.h	2001/06/30 03:15:45	1.36
+++ elf-bfd.h	2001/06/30 03:52:52
@@ -1159,9 +1159,6 @@ boolean _bfd_elf_make_linker_section_rel
 	   elf_linker_section_t *lsect,
 	   int alignment));
 
-boolean _bfd_elfcore_section_from_phdr
-  PARAMS ((bfd *, Elf_Internal_Phdr *, int));
-
 extern const bfd_target *bfd_elf32_object_p PARAMS ((bfd *));
 extern const bfd_target *bfd_elf32_core_file_p PARAMS ((bfd *));
 extern char *bfd_elf32_core_file_failing_command PARAMS ((bfd *));
Index: bfd/elf.c
===================================================================
RCS file: /cvs/src/src/bfd/elf.c,v
retrieving revision 1.73
diff -u -p -r1.73 elf.c
--- elf.c	2001/06/30 03:15:46	1.73
+++ elf.c	2001/06/30 03:52:55
@@ -5410,10 +5410,7 @@ _bfd_elfcore_make_pseudosection (abfd, n
   sect->flags = SEC_HAS_CONTENTS;
   sect->alignment_power = 2;
 
-  if (! elfcore_maybe_make_sect (abfd, name, sect))
-    return false;
-
-  return true;
+  return elfcore_maybe_make_sect (abfd, name, sect);
 }
 
 /* prstatus_t exists on:
@@ -5484,11 +5481,8 @@ elfcore_grok_prstatus (abfd, note)
     }
 
   /* Make a ".reg/999" section and a ".reg" section.  */
-  if (! _bfd_elfcore_make_pseudosection (abfd, ".reg",
-					 raw_size, note->descpos + offset));
-    return false;
-
-  return true;
+  return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+					  raw_size, note->descpos + offset);
 }
 #endif /* defined (HAVE_PRSTATUS_T) */
 
@@ -5499,7 +5493,8 @@ elfcore_make_note_pseudosection (abfd, n
      char *name;
      Elf_Internal_Note *note;
 {
-  return _bfd_elfcore_make_pseudosection (abfd, name, note->descsz, note->descpos);
+  return _bfd_elfcore_make_pseudosection (abfd, name,
+					  note->descsz, note->descpos);
 }
 
 /* There isn't a consistent prfpregset_t across platforms,
@@ -5544,7 +5539,7 @@ typedef psinfo32_t elfcore_psinfo32_t;
    most MAX bytes long, possibly without a terminating '\0'.
    the copy will always have a terminating '\0'.  */
 
-char*
+char *
 _bfd_elfcore_strndup (abfd, start, max)
      bfd *abfd;
      char *start;
@@ -5583,10 +5578,12 @@ elfcore_grok_psinfo (abfd, note)
       memcpy (&psinfo, note->descdata, sizeof (psinfo));
 
       elf_tdata (abfd)->core_program
-	= _bfd_elfcore_strndup (abfd, psinfo.pr_fname, sizeof (psinfo.pr_fname));
+	= _bfd_elfcore_strndup (abfd, psinfo.pr_fname,
+				sizeof (psinfo.pr_fname));
 
       elf_tdata (abfd)->core_command
-	= _bfd_elfcore_strndup (abfd, psinfo.pr_psargs, sizeof (psinfo.pr_psargs));
+	= _bfd_elfcore_strndup (abfd, psinfo.pr_psargs,
+				sizeof (psinfo.pr_psargs));
     }
 #if defined (HAVE_PRPSINFO32_T) || defined (HAVE_PSINFO32_T)
   else if (note->descsz == sizeof (elfcore_psinfo32_t))
@@ -5597,10 +5594,12 @@ elfcore_grok_psinfo (abfd, note)
       memcpy (&psinfo, note->descdata, sizeof (psinfo));
 
       elf_tdata (abfd)->core_program
-	= _bfd_elfcore_strndup (abfd, psinfo.pr_fname, sizeof (psinfo.pr_fname));
+	= _bfd_elfcore_strndup (abfd, psinfo.pr_fname,
+				sizeof (psinfo.pr_fname));
 
       elf_tdata (abfd)->core_command
-	= _bfd_elfcore_strndup (abfd, psinfo.pr_psargs, sizeof (psinfo.pr_psargs));
+	= _bfd_elfcore_strndup (abfd, psinfo.pr_psargs,
+				sizeof (psinfo.pr_psargs));
     }
 #endif
 
@@ -5741,11 +5740,8 @@ elfcore_grok_lwpstatus (abfd, note)
 
   sect->flags = SEC_HAS_CONTENTS;
   sect->alignment_power = 2;
-
-  if (!elfcore_maybe_make_sect (abfd, ".reg2", sect))
-    return false;
 
-  return true;
+  return elfcore_maybe_make_sect (abfd, ".reg2", sect);
 }
 #endif /* defined (HAVE_LWPSTATUS_T) */
 
@@ -5938,21 +5934,6 @@ elfcore_read_notes (abfd, offset, size)
   free (buf);
   return true;
 }
-
-/* FIXME: This function is now unnecessary.  Callers can just call
-   bfd_section_from_phdr directly.  */
-
-boolean
-_bfd_elfcore_section_from_phdr (abfd, phdr, sec_num)
-     bfd *abfd;
-     Elf_Internal_Phdr* phdr;
-     int sec_num;
-{
-  if (! bfd_section_from_phdr (abfd, phdr, sec_num))
-    return false;
-
-  return true;
-}
 
 /* Providing external access to the ELF program header table.  */
 
@@ -5970,8 +5951,7 @@ bfd_get_elf_phdr_upper_bound (abfd)
       return -1;
     }
 
-  return (elf_elfheader (abfd)->e_phnum
-	  * sizeof (Elf_Internal_Phdr));
+  return elf_elfheader (abfd)->e_phnum * sizeof (Elf_Internal_Phdr);
 }
 
 /* Copy ABFD's program header table entries to *PHDRS.  The entries
Index: bfd/elf32-mips.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-mips.c,v
retrieving revision 1.101
diff -u -p -r1.101 elf32-mips.c
--- elf32-mips.c	2001/06/30 03:15:46	1.101
+++ elf32-mips.c	2001/06/30 03:53:01
@@ -2317,12 +2317,12 @@ mips_elf_sym_is_global (abfd, sym)
      bfd *abfd ATTRIBUTE_UNUSED;
      asymbol *sym;
 {
-  if (SGI_COMPAT(abfd))
-    return (sym->flags & BSF_SECTION_SYM) == 0 ? true : false;
+  if (SGI_COMPAT (abfd))
+    return (sym->flags & BSF_SECTION_SYM) == 0;
   else
     return ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
-            || bfd_is_und_section (bfd_get_section (sym))
-            || bfd_is_com_section (bfd_get_section (sym)));
+	    || bfd_is_und_section (bfd_get_section (sym))
+	    || bfd_is_com_section (bfd_get_section (sym)));
 }
 
 /* Set the right machine number for a MIPS ELF file.  This is used for
@@ -9163,11 +9163,8 @@ _bfd_elf32_mips_grok_prstatus (abfd, not
     }
 
   /* Make a ".reg/999" section.  */
-  if (! _bfd_elfcore_make_pseudosection (abfd, ".reg",
-					 raw_size, note->descpos + offset))
-    return false;
-
-  return true;
+  return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+					  raw_size, note->descpos + offset);
 }
 
 static boolean _bfd_elf32_mips_grok_psinfo (abfd, note)
Index: bfd/elfcore.h
===================================================================
RCS file: /cvs/src/src/bfd/elfcore.h,v
retrieving revision 1.7
diff -u -p -r1.7 elfcore.h
--- elfcore.h	2001/03/08 21:04:01	1.7
+++ elfcore.h	2001/06/30 03:53:01
@@ -206,7 +206,7 @@ elf_core_file_p (abfd)
   /* Process each program header.  */
   for (phindex = 0; phindex < i_ehdrp->e_phnum; ++phindex)
     {
-      if (!_bfd_elfcore_section_from_phdr (abfd, i_phdrp + phindex, phindex))
+      if (! bfd_section_from_phdr (abfd, i_phdrp + phindex, phindex))
 	goto fail;
     }
 



More information about the Binutils mailing list