This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: bfd_arch_get_compatible
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: binutils at sourceware dot org, Alan Modra <amodra at gmail dot com>
- Date: Sat, 4 Jun 2011 10:20:41 -0700
- Subject: Re: bfd_arch_get_compatible
- References: <20110604040358.GB20933@bubble.grove.modra.org>
On Fri, Jun 3, 2011 at 9:03 PM, Alan Modra <amodra@gmail.com> wrote:
> Some time ago --accept-unknown-input-format was added to ld,
> http://sourceware.org/ml/binutils/2002-12/msg00517.html but the patch
> committed differed from the posted patch, and had an error. ?As far as
> I can tell the error would never be noticed, since the return value of
> bfd_arch_get_compatible is only tested for non-NULL, except in one
> place. ?That place, elf32_m68k_merge_private_bfd_data, doesn't allow
> binary or unknown architectures, so the buggy return value doesn't
> matter there either. ?Fixed by the following archures.c patch.
>
> Incidentally, the reason I happened to be looking at this code is
> because --accept-unknown-input-format has quite weird behaviour. ?For
> example, suppose you build a powerpc-linux ld just using the default
> configure options, then --accept-unknown-input-format lets you link in
> i686-linux object files. ?However, if you build powerpc-linux ld with
> --enable-targets=all, then you can't link in i686-linux objects. ?So
> --enable-targets=all in this case gives you *less* functionality.
>
> In fact, you can't even do it by forcing the generic ELF target for
> the x86 objects with -b, hence the elfcode.h patch.
>
> ? ? ? ?* archures.c (bfd_arch_get_compatible): If one arch is unknown,
> ? ? ? ?return the other arch.
> ? ? ? ?* elfcode.h (elf_object_p): Allow explicit match to generic ELF
> ? ? ? ?target.
>
This caused:
http://sourceware.org/bugzilla/show_bug.cgi?id=12842
--
H.J.