From e510ff97286cbe31248a5042fce1a18b82d95563 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Tue, 27 Dec 2005 17:47:42 +0000 Subject: [PATCH] * elf32-mt.c (mt_elf_merge_private_bfd_data): Do not allow mixing object files from different mt variants. --- bfd/ChangeLog | 5 +++++ bfd/elf32-mt.c | 17 +++++------------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e3bbd9646e4..92a9b3d97ac 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2005-12-27 Nathan Sidwell + + * elf32-mt.c (mt_elf_merge_private_bfd_data): Do not allow mixing + object files from different mt variants. + 2005-12-27 Leif Ekblad * config.bfd: Add support for RDOS targets. diff --git a/bfd/elf32-mt.c b/bfd/elf32-mt.c index 9f240bb3442..320ef1e3415 100644 --- a/bfd/elf32-mt.c +++ b/bfd/elf32-mt.c @@ -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 -- 2.30.2