* elf32-mt.c (mt_elf_merge_private_bfd_data): Do not allow mixing
authorNathan Sidwell <nathan@codesourcery.com>
Tue, 27 Dec 2005 17:47:42 +0000 (17:47 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Tue, 27 Dec 2005 17:47:42 +0000 (17:47 +0000)
object files from different mt variants.

bfd/ChangeLog
bfd/elf32-mt.c

index e3bbd96..92a9b3d 100644 (file)
@@ -1,3 +1,8 @@
+2005-12-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * elf32-mt.c (mt_elf_merge_private_bfd_data): Do not allow mixing
+       object files from different mt variants.
+
 2005-12-27  Leif Ekblad  <leif@rdos.net>
 
        * config.bfd: Add support for RDOS targets.
index 9f240bb..320ef1e 100644 (file)
@@ -548,7 +548,7 @@ static bfd_boolean
 mt_elf_merge_private_bfd_data (bfd * ibfd, bfd * obfd)
 {
   flagword     old_flags, new_flags;
-  bfd_boolean  error = FALSE;
+  bfd_boolean  ok = TRUE;
 
   /* Check if we have the same endianess.  */
   if (_bfd_generic_verify_endian_match (ibfd, obfd) == FALSE)
@@ -578,23 +578,16 @@ mt_elf_merge_private_bfd_data (bfd * ibfd, bfd * obfd)
     {
       /* CPU has changed.  This is invalid, because MRISC, MRISC2 and
         MS2 are not subsets of each other.   */
-      error = 1;
-      
-      /* FIXME:However, until the compiler is multilibbed, preventing
-        mixing breaks the build.  So we allow merging and use the
-        greater CPU value.  This is of course unsafe.  */
-      error = 0;
-      if ((new_flags & EF_MT_CPU_MASK) > (old_flags & EF_MT_CPU_MASK))
-       old_flags = ((old_flags & ~EF_MT_CPU_MASK)
-                    | (new_flags & EF_MT_CPU_MASK));
+      ok = FALSE;
     }
-  if (!error)
+  
+  if (ok)
     {
       obfd->arch_info = ibfd->arch_info;
       elf_elfheader (obfd)->e_flags = old_flags;
     }
 
-  return !error;
+  return ok;
 }
 
 static bfd_boolean