This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch i386 pe]: Allow multilib version gas for i386 pe-coff


2009/5/19 H.J. Lu <hjl.tools@gmail.com>:
> On Tue, May 19, 2009 at 12:24 PM, Dave Korn
> <dave.korn.cygwin@googlemail.com> wrote:
>> H.J. Lu wrote:
>>> On Tue, May 19, 2009 at 11:57 AM, Dave Korn
>>> <dave.korn.cygwin@googlemail.com> wrote:
>>>> H.J. Lu wrote:
>>>>> On Tue, May 19, 2009 at 11:19 AM, Kai Tietz <ktietz70@googlemail.com> wrote:
>>>>>> Well, I tried this and I found that in gas/output-file.c obj-coff.h is
>>>>>> included, but the tc-i386.h isn't. So if I move code into tc-i386.h I
>>>>>> get build failures for PE(+) x86/x64
>>>>>>
>>>>>> So, how to continue here?
>>>>>>
>>>>> How does Linux/x86-64 deal with this issue?
>>>> ?HJ, perhaps you can explain the motivation for your change request a bit
>>>> clearer. ?ISTM that ELF does things one way, COFF another. ?All the other COFF
>>>> targets define TARGET_FORMAT in cpu-specific chunks of obj-coff.h, ELF and
>>>> AOUT targets define TARGET_FORMAT in cpu-specific header files. ?This is
>>>> probably just a historical accident, but I'm not sure why that means we should
>>>> try and fix it now for just one single target?
>>>>
>>>
>>> Those x86 32/64bit processing is handled in tc-i386.[ch] so far. I'd like
>>> to keep this way so that any future changes to x86 won't break x86 32/64bit
>>> processing.
>>
>> ?Hmm, I see what you mean, it's a cpu-thing rather than an object format
>> thing. ?(BTW, did you mean to send this off-list?)
>>
>
> Oops. I didn't mean it.
>
>> ?I guess the next question is "Why doesn't putting them into tc-i386.h work,
>> considering that obj-coff.h begins with a #include of targ-cpu.h"?
>>
>
> That was my question too.

Well, the answer isn't that hard here. The generated header file
targ-env.h is the reason. For pe(p) it simply includes te-pe(p).h, but
for linux the tc-i386.h file is included by it, too. I didn't
investigate into the reason for this, but this is the answer, why it
didn't break on linux 32/64 target.

> --
> H.J.
>

Cheers,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]