aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2006-02-02 22:05:56 +0000
committerH.J. Lu <hjl.tools@gmail.com>2006-02-02 22:05:56 +0000
commitde205c03b963123f4f7fecd0520861b161b3795e (patch)
tree1eef3086398e2b043d9ea7af38ee1b9a482bbb4e /binutils
parenta9931606c273de874d3d8ce5e33831d3c9390f7a (diff)
downloadgdb-de205c03b963123f4f7fecd0520861b161b3795e.zip
gdb-de205c03b963123f4f7fecd0520861b161b3795e.tar.gz
gdb-de205c03b963123f4f7fecd0520861b161b3795e.tar.bz2
binutils/
2006-02-02 H.J. Lu <hongjiu.lu@intel.com> * readelf.c (process_program_headers): Undo the change made on 2004-09-22. Match PT_DYNAMIC segment only with SHT_DYNAMIC sections. ld/testsuite/ 2006-02-02 H.J. Lu <hongjiu.lu@intel.com> * ld-i386/tlsbin.rd: Update for changed segment map. * ld-i386/tlsnopic.rd: Likewise. * ld-i386/tlspic.rd: Likewise. * ld-powerpc/tlsexe.r: Likewise. * ld-powerpc/tlsexe32.r: Likewise. * ld-powerpc/tlsexetoc.r: Likewise. * ld-powerpc/tlsso.r: Likewise. * ld-powerpc/tlsso32.r: Likewise. * ld-powerpc/tlstocso.r: Likewise. * ld-s390/tlsbin.rd: Likewise. * ld-s390/tlsbin_64.rd: Likewise. * ld-s390/tlspic.rd: Likewise. * ld-s390/tlspic_64.rd: Likewise. * ld-sh/tlsbin-2.d: Likewise. * ld-sh/tlspic-2.d: Likewise. * ld-x86-64/tlsbin.rd: Likewise. * ld-x86-64/tlspic.rd: Likewise.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/readelf.c11
2 files changed, 11 insertions, 6 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index f181bdf..b7d4ee0 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2006-02-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * readelf.c (process_program_headers): Undo the change made on
+ 2004-09-22. Match PT_DYNAMIC segment only with SHT_DYNAMIC
+ sections.
+
2006-01-30 Nick Clifton <nickc@redhat.com>
* objcopy.c (copy_object): Catch the case where an attempt is made
diff --git a/binutils/readelf.c b/binutils/readelf.c
index f0385d0..04f64ad 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -3405,6 +3405,10 @@ process_program_headers (FILE *file)
for (j = 1; j < elf_header.e_shnum; j++, section++)
{
if (section->sh_size > 0
+ /* PT_DYNAMIC segment contains only SHT_DYNAMIC
+ sections. */
+ && (segment->p_type != PT_DYNAMIC
+ || section->sh_type == SHT_DYNAMIC)
/* Compare allocated sections by VMA, unallocated
sections by file offset. */
&& (section->sh_flags & SHF_ALLOC
@@ -3413,12 +3417,7 @@ process_program_headers (FILE *file)
<= segment->p_vaddr + segment->p_memsz)
: ((bfd_vma) section->sh_offset >= segment->p_offset
&& (section->sh_offset + section->sh_size
- <= segment->p_offset + segment->p_filesz)))
- /* .tbss is special. It doesn't contribute memory space
- to normal segments. */
- && (!((section->sh_flags & SHF_TLS) != 0
- && section->sh_type == SHT_NOBITS)
- || segment->p_type == PT_TLS))
+ <= segment->p_offset + segment->p_filesz))))
printf ("%s ", SECTION_NAME (section));
}