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


On Tue, May 19, 2009 at 11:30 PM, Kai Tietz <ktietz70@googlemail.com> wrote:
> 2009/5/20 H.J. Lu <hjl.tools@gmail.com>:
>> On Tue, May 19, 2009 at 3:09 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Tue, May 19, 2009 at 2:47 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> On Tue, May 19, 2009 at 1:31 PM, Kai Tietz <ktietz70@googlemail.com> wrote:
>>>>> 2009/5/19 H.J. Lu <hjl.tools@gmail.com>:
>>>>>> On Tue, May 19, 2009 at 1:12 PM, Kai Tietz <ktietz70@googlemail.com> wrote:
>>>>>>> 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.
>>>>>>>
>>>>>>
>>>>>> Then you should include tc-i386.h in targ-env.h if you want to
>>>>>> support --32/--64 on x86.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> H.J.
>>>>>>
>>>>>
>>>>
>>>> Both obj-elf.h and obj-coff.h ?include "targ-cpu.h", which has
>>>>
>>>> #include "tc-i386.h"
>>>>
>>>> Why didn't it work for you?
>>>>
>>>>
>>>
>>> This patch moves TARGET_FORMAT from obj-coff. to tc-i386.h
>>> for x86.
>>>
>>
>> Try this.
>>
>>
>> H.J.
>> ---
>> 2009-05-19 ?Kai Tietz ?<kai.tietz@onevision.com>
>> ? ? ? ? ? ?H.J. Lu ?<hongjiu.lu@intel.com>
>>
>> ? ? ? ?* config/obj-coff.h (TARGET_FORMAT): Removed for x86 pe-coff.
>> ? ? ? ?(COFF_TARGET_FORMAT): Likewise.
>>
>> ? ? ? ?* config/tc-i386.c (md_longopts): Allow --64 for x86 pe-coff.
>> ? ? ? ?(md_parse_option): Likewise.
>> ? ? ? ?(md_show_usage): Show option --32/--64 for x86 pe-coff.
>> ? ? ? ?(i386_target_format): Use also for x86 pe-coff.
>>
>> ? ? ? ?* config/tc-i386.h (PE_TARGET_FORMAT): New.
>> ? ? ? ?(PE_TARGET_FORMAT64): Likewise.
>> ? ? ? ?(TARGET_FORMAT): Defined with i386_target_format for x86
>> ? ? ? ?pe-coff.
>>
>
> Ok, this patch works fine (I tested it for all three targets). ?I just
> noticed a small hick-up here about including of coff/x86_64.h and
> coff/i386.h, which I fixed in the patch attached, too.
>
> Kai
>

I checked it in. Please verify that it works for you.

Thanks.


-- 
H.J.


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