* aoutx.h (NAME(aout,final_link)): Don't assume that all the input
authorIan Lance Taylor <ian@airs.com>
Tue, 13 Sep 1994 20:25:46 +0000 (20:25 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 13 Sep 1994 20:25:46 +0000 (20:25 +0000)
        files are a.out.

bfd/ChangeLog
bfd/aoutx.h

index 4b9a159..84d7fa1 100644 (file)
@@ -1,3 +1,8 @@
+Tue Sep 13 16:23:57 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * aoutx.h (NAME(aout,final_link)): Don't assume that all the input
+        files are a.out.
+
 Tue Sep 13 11:09:39 1994  J.T. Conklin  (jtc@rtl.cygnus.com)
 
        * configure.host (sparc-*-netbsd): use sparcnbsd.
index 1c716e2..c800bb7 100644 (file)
@@ -698,6 +698,10 @@ NAME(aout,machine_type) (arch, machine, unknown)
     if (machine == 0)  arch_flags = M_29K;
     break;
 
+  case bfd_arch_arm:
+    if (machine == 0)  arch_flags = M_ARM;
+    break;
+    
   case bfd_arch_mips:
     switch (machine) {
     case 0:
@@ -1767,7 +1771,7 @@ add_to_stringtab (abfd, tab, str, copy)
   bfd_size_type index;
 
   /* An index of 0 always means the empty string.  */
-  if (*str == '\0')
+  if (str == 0 || *str == '\0')
     return 0;
 
   /* Don't hash if BFD_TRADITIONAL_FORMAT is set, because SunOS dbx
@@ -3307,23 +3311,26 @@ NAME(aout,final_link) (abfd, info, callback)
            }
        }
 
-      sz = bfd_section_size (sub, obj_textsec (sub));
-      if (sz > max_contents_size)
-       max_contents_size = sz;
-      sz = bfd_section_size (sub, obj_datasec (sub));
-      if (sz > max_contents_size)
-       max_contents_size = sz;
-
-      sz = exec_hdr (sub)->a_trsize;
-      if (sz > max_relocs_size)
-       max_relocs_size = sz;
-      sz = exec_hdr (sub)->a_drsize;
-      if (sz > max_relocs_size)
-       max_relocs_size = sz;
-
-      sz = obj_aout_external_sym_count (sub);
-      if (sz > max_sym_count)
-       max_sym_count = sz;
+      if (bfd_get_flavour (sub) == bfd_target_aout_flavour)
+       {
+         sz = bfd_section_size (sub, obj_textsec (sub));
+         if (sz > max_contents_size)
+           max_contents_size = sz;
+         sz = bfd_section_size (sub, obj_datasec (sub));
+         if (sz > max_contents_size)
+           max_contents_size = sz;
+
+         sz = exec_hdr (sub)->a_trsize;
+         if (sz > max_relocs_size)
+           max_relocs_size = sz;
+         sz = exec_hdr (sub)->a_drsize;
+         if (sz > max_relocs_size)
+           max_relocs_size = sz;
+
+         sz = obj_aout_external_sym_count (sub);
+         if (sz > max_sym_count)
+           max_sym_count = sz;
+       }
     }
 
   if (info->relocateable)