From 52e9b6196ae25776c0ed348b4b1d823c3b356854 Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Wed, 19 Dec 2001 05:16:47 +0000 Subject: [PATCH] 2001-12-18 Michael Snyder * 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 | 5 +++++ bfd/elf.c | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e5b076993e0..77d3d81e3c1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -12,6 +12,11 @@ (elfNN_hpux_post_process_headers): New function. #include elfNN-target.h again with values for IA64 HP-UX vector. +2001-12-18 Michael Snyder + + * 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 * elf.c (_bfd_elf_copy_private_bfd_data): Also copy GP. diff --git a/bfd/elf.c b/bfd/elf.c index 65e108adbd8..92b60071dc5 100644 --- 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); -- 2.30.2