* elflink.h (elf_link_input_bfd): Don't skip symbols from sections
authorIan Lance Taylor <ian@airs.com>
Wed, 26 Feb 1997 18:35:56 +0000 (18:35 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 26 Feb 1997 18:35:56 +0000 (18:35 +0000)
that have no contents merely because linker_mark is not set.

bfd/ChangeLog
bfd/elflink.h

index 6e3c8e2acc07072d4b5bfc214723a0a7a1cc63f1..3e0ed6fb93d5ade654e94051df9f829e36728dfb 100644 (file)
@@ -1,3 +1,18 @@
+Wed Feb 26 13:33:03 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elflink.h (elf_link_input_bfd): Don't skip symbols from sections
+       that have no contents merely because linker_mark is not set.
+
+Tue Feb 25 18:51:35 1997  Stan Shebs  <shebs@andros.cygnus.com>
+
+       * config.bfd (mips*-*-lnews*): New target.
+       * coff-mips.c (mips_relocate_section): Make assert compare
+       content byteorder instead of header byteorder.
+       (ecoff_biglittle_vec): New BFD, big-endian headers, little-endian
+       data.
+       * configure.in (ecoff_biglittle_vec): Add case.
+       * configure: Update.
+
 Tue Feb 25 00:32:49 1997  Ian Lance Taylor  <ian@cygnus.com>
 
        * elf.c (elf_fake_sections): Use SHT_NOTE for any section whose
index a4a7fc4efb4b5fea59f56a14a7700b5c863acd8c..3218ac3d4b4a87fde320b6fbf03b466be8ba50ee 100644 (file)
@@ -3863,12 +3863,14 @@ elf_link_input_bfd (finfo, input_bfd)
        continue;
 
       /* If this symbol is defined in a section which we are
-         discarding, we don't need to keep it.  For the benefit of the
-         MIPS ELF linker, we check SEC_EXCLUDE as well as linker_mark.  */
+         discarding, we don't need to keep it, but note that
+         linker_mark is only reliable for sections that have contents.
+         For the benefit of the MIPS ELF linker, we check SEC_EXCLUDE
+         as well as linker_mark.  */
       if (isym->st_shndx > 0
          && isym->st_shndx < SHN_LORESERVE
          && isec != NULL
-         && (! isec->linker_mark
+         && ((! isec->linker_mark && (isec->flags & SEC_HAS_CONTENTS) != 0)
              || (! finfo->info->relocateable
                  && (isec->flags & SEC_EXCLUDE) != 0)))
        continue;