OSDN Git Service

2001-12-18 Michael Snyder <msnyder@redhat.com>
authormsnyder <msnyder>
Wed, 19 Dec 2001 05:16:44 +0000 (05:16 +0000)
committermsnyder <msnyder>
Wed, 19 Dec 2001 05:16:44 +0000 (05:16 +0000)
        * elf.c (assign_file_positions_for_segments): Don't sort PT_NOTE
        sections of corefiles.  Also it makes no sense to sort if count == 1.

bfd/ChangeLog
bfd/elf.c

index e5b0769..77d3d81 100644 (file)
        (elfNN_hpux_post_process_headers): New function.
        #include elfNN-target.h again with values for IA64 HP-UX vector.
 
+2001-12-18  Michael Snyder  <msnyder@redhat.com>
+
+        * elf.c (assign_file_positions_for_segments): Don't sort PT_NOTE
+        sections of corefiles.  Also it makes no sense to sort if count == 1.
+
 2001-12-18  H.J. Lu <hjl@gnu.org>
 
        * elf.c (_bfd_elf_copy_private_bfd_data): Also copy GP.
index 65e108a..92b6007 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -3299,8 +3299,13 @@ assign_file_positions_for_segments (abfd)
       asection **secpp;
 
       /* If elf_segment_map is not from map_sections_to_segments, the
-         sections may not be correctly ordered.  */
-      if (m->count > 0)
+         sections may not be correctly ordered.  NOTE: sorting should 
+        not be done to the PT_NOTE section of a corefile, which may
+        contain several pseudo-sections artificially created by bfd.
+        Sorting these pseudo-sections breaks things badly.  */
+      if (m->count > 1 
+         && !(elf_elfheader (abfd)->e_type == ET_CORE 
+              && m->p_type == PT_NOTE))
        qsort (m->sections, (size_t) m->count, sizeof (asection *),
               elf_sort_sections);