* elfcode.h (elf_slurp_symbol_table): Don't try to read the
authorIan Lance Taylor <ian@airs.com>
Fri, 14 Mar 1997 21:46:39 +0000 (21:46 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 14 Mar 1997 21:46:39 +0000 (21:46 +0000)
version symbols if there aren't any.

bfd/ChangeLog
bfd/elfcode.h

index 3d12e34a71a0c9d374bc17ad4a8154f639473a5d..30434369462439f6ec2ec722e10ee569d995ed20 100644 (file)
@@ -1,3 +1,8 @@
+Fri Mar 14 16:43:22 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elfcode.h (elf_slurp_symbol_table): Don't try to read the
+       version symbols if there aren't any.
+
 start-sanitize-tic80
 Thu Mar 13 16:38:30 1997  Fred Fish  <fnf@cygnus.com>
 
index 132060157eee02749e8543eeed7bc88d3117892e..fe85d699bd0f80ed03dbbcf0dad1d5c362a97cb4 100644 (file)
@@ -949,7 +949,10 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
   else
     {
       hdr = &elf_tdata (abfd)->dynsymtab_hdr;
-      verhdr = &elf_tdata (abfd)->dynversym_hdr;
+      if (elf_dynversym (abfd) == 0)
+       verhdr = NULL;
+      else
+       verhdr = &elf_tdata (abfd)->dynversym_hdr;
       if ((elf_tdata (abfd)->dynverdef_section != 0
           && elf_tdata (abfd)->verdef == NULL)
          || (elf_tdata (abfd)->dynverref_section != 0
@@ -992,8 +995,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
 
       /* Read the raw ELF version symbol information.  */
 
-      if (elf_dynversym (abfd) != 0
-         && verhdr != NULL
+      if (verhdr != NULL
          && verhdr->sh_size / sizeof (Elf_External_Versym) != symcount)
        {
          (*_bfd_error_handler)
@@ -1013,7 +1015,7 @@ elf_slurp_symbol_table (abfd, symptrs, dynamic)
            goto error_return;
 
          x_versymp = (Elf_External_Versym *) bfd_malloc (verhdr->sh_size);
-         if (x_versymp == NULL && symcount != 0)
+         if (x_versymp == NULL && verhdr->sh_size != 0)
            goto error_return;
 
          if (bfd_read ((PTR) x_versymp, 1, verhdr->sh_size, abfd)