This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: ambiguous file formats coff-x86_64 / pe-x86_64
- From: "Jan Beulich" <JBeulich at suse dot com>
- To: "Alan Modra" <amodra at gmail dot com>
- Cc: <binutils at sourceware dot org>
- Date: Tue, 03 Jan 2017 04:22:47 -0700
- Subject: Re: ambiguous file formats coff-x86_64 / pe-x86_64
- Authentication-results: sourceware.org; auth=none
- References: <585BF4AB020000780012BBF5@prv-mh.provo.novell.com> <20161222214952.GB2896@bubble.grove.modra.org> <586B61A5020000780012C791@prv-mh.provo.novell.com> <20170103102752.GC31129@bubble.grove.modra.org>
>>> On 03.01.17 at 11:27, <amodra@gmail.com> wrote:
> On Tue, Jan 03, 2017 at 12:32:37AM -0700, Jan Beulich wrote:
>> >>> On 22.12.16 at 22:49, <amodra@gmail.com> wrote:
>> > On Thu, Dec 22, 2016 at 07:43:39AM -0700, Jan Beulich wrote:
>> >> binary. We've now had reports that on binutils with both coff-x86_64
>> >> and pe-x86_64 configured in (but defaulting to ELF), linking fails due
>> >> to the object being ambiguous.
>> >
>> > match_priority was invented for exactly this sort of situation.
>>
>> Interesting: I don't see how that would help here, as I don't see
>> why (and on what basis) to "prefer" one variant over the other.
>> Looking over the source, at least relocation addend handling is
>> different between the two, and without other (sideband?) info
>> I don't think one can guess the format to be used. The situation
>> in our case is different, because we don't care which of the two
>> gets used, ad we don't care about their differences.
>
> Hmm, I wonder why coff-x86_64.c has
>
> #ifdef PE
> #define amd64coff_object_p pe_bfd_object_p
> #else
> #define amd64coff_object_p coff_object_p
> #endif
>
> and not #ifdef COFF_WITH_PE?
Indeed I had been surprised by this apparent inconsistency too,
but I've assumed whoever wrote this knew why (s)he was doing
it this way. But then I don't think changing the symbol used would
affect the behavior which is problematic to us.
Jan