* internal.h (ELF_IS_SECTION_IN_SEGMENT): PT_PHDR program headers
authorAlan Modra <amodra@gmail.com>
Thu, 8 Apr 2010 02:09:59 +0000 (02:09 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 8 Apr 2010 02:09:59 +0000 (02:09 +0000)
cannot contain any sections.

include/elf/ChangeLog
include/elf/internal.h

index 52e1024b2e70a0676a7b69844a7e81e50cb8f05e..631fe35219d4ee6ac19b440c8e799e331fdcd7cc 100644 (file)
@@ -1,3 +1,8 @@
+2010-04-08  David Stubbs  <stubbs@icerasemi.com>
+
+       * internal.h (ELF_IS_SECTION_IN_SEGMENT): PT_PHDR program headers
+       cannot contain any sections.
+
 2010-03-25  Joseph Myers  <joseph@codesourcery.com>
 
        * common.h (ELFOSABI_C6000_ELFABI, ELFOSABI_C6000_LINUX): Define.
index 9ea175c9de05255353e29a12ec5bc820371dd11d..e2334cbd3a476bcde7b90161ce3fe4ec43e3f731 100644 (file)
@@ -1,6 +1,6 @@
 /* ELF support for BFD.
    Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002,
-   2003, 2006, 2007, 2008 Free Software Foundation, Inc.
+   2003, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -306,7 +306,8 @@ struct elf_segment_map
         || segment->p_type == PT_GNU_RELRO                             \
         || segment->p_type == PT_LOAD))                                \
     || ((sec_hdr->sh_flags & SHF_TLS) == 0                             \
-       && segment->p_type != PT_TLS))                                  \
+       && segment->p_type != PT_TLS                                    \
+       && segment->p_type != PT_PHDR))                                 \
    /* Any section besides one of type SHT_NOBITS must have a file      \
       offset within the segment.  */                                   \
    && (sec_hdr->sh_type == SHT_NOBITS                                  \