From: Nathan Sidwell Date: Tue, 27 Dec 2005 17:47:42 +0000 (+0000) Subject: * elf32-mt.c (mt_elf_merge_private_bfd_data): Do not allow mixing X-Git-Tag: insight_6_8-branchpoint~3933 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2d2e0526986f892bf36b8ebb09888cf34a8666b9;p=pf3gnuchains%2Fpf3gnuchains4x.git * elf32-mt.c (mt_elf_merge_private_bfd_data): Do not allow mixing object files from different mt variants. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e3bbd9646e..92a9b3d97a 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 9f240bb344..320ef1e341 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