* elf.c (copy_private_bfd_data): When attaching sections to segments ignore
authorKen Raeburn <raeburn@cygnus>
Thu, 21 Dec 1995 00:41:20 +0000 (00:41 +0000)
committerKen Raeburn <raeburn@cygnus>
Thu, 21 Dec 1995 00:41:20 +0000 (00:41 +0000)
sections that won't be allocated.  Patch from Andreas Schwab.

bfd/ChangeLog
bfd/elf.c

index ee63eb99997311e6ad44766f67e4abf6a6f1dc0e..aa3c20a49a3946a2fe3f6a1d5fd37ee77ea99c98 100644 (file)
@@ -1,3 +1,9 @@
+Wed Dec 20 19:14:18 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * elf.c (copy_private_bfd_data): When attaching sections to
+       segments ignore sections that won't be allocated.  Patch from
+       Andreas Schwab.
+
 Tue Dec 19 20:01:43 1995  Ken Raeburn  <raeburn@cygnus.com>
 
        * config.bfd: Match on m68k-cbm-* only if OS doesn't match
index 9da5010334942ed256177eae35fb00b6dd77d857..a7bdf5cbb762e54d021eca7a52581c320e655301 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -2197,7 +2197,7 @@ prep_headers (abfd)
 
   i_ehdrp->e_ident[EI_CLASS] = bed->s->elfclass;
   i_ehdrp->e_ident[EI_DATA] =
-    abfd->xvec->byteorder_big_p ? ELFDATA2MSB : ELFDATA2LSB;
+    bfd_big_endian (abfd) ? ELFDATA2MSB : ELFDATA2LSB;
   i_ehdrp->e_ident[EI_VERSION] = bed->s->ev_current;
 
   for (count = EI_PAD; count < EI_NIDENT; count++)
@@ -2512,6 +2512,7 @@ copy_private_bfd_data (ibfd, obfd)
                 && (bfd_vma) s->filepos >= p->p_offset
                 && ((bfd_vma) s->filepos + s->_raw_size
                     <= p->p_offset + p->p_filesz)))
+           && (s->flags & SEC_ALLOC) != 0
            && s->output_section != NULL)
          ++csecs;
 
@@ -2549,6 +2550,7 @@ copy_private_bfd_data (ibfd, obfd)
                   && (bfd_vma) s->filepos >= p->p_offset
                   && ((bfd_vma) s->filepos + s->_raw_size
                       <= p->p_offset + p->p_filesz)))
+             && (s->flags & SEC_ALLOC) != 0
              && s->output_section != NULL)
            {
              m->sections[isec] = s->output_section;