[patch i386 pe]: Allow multilib version gas for i386 pe-coff
Kai Tietz
ktietz70@googlemail.com
Wed May 20 06:30:00 GMT 2009
More information about the Binutils mailing list
Wed May 20 06:30:00 GMT 2009
- Previous message (by thread): [patch i386 pe]: Allow multilib version gas for i386 pe-coff
- Next message (by thread): [patch i386 pe]: Allow multilib version gas for i386 pe-coff
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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 -- | (\_/) This is Bunny. Copy and paste | (='.'=) Bunny into your signature to help | (")_(") him gain world domination -------------- next part -------------- A non-text attachment was scrubbed... Name: w32biarchgas.diff Type: text/x-diff Size: 3497 bytes Desc: not available URL: <https://sourceware.org/pipermail/binutils/attachments/20090520/b2632c0c/attachment.bin>
- Previous message (by thread): [patch i386 pe]: Allow multilib version gas for i386 pe-coff
- Next message (by thread): [patch i386 pe]: Allow multilib version gas for i386 pe-coff
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list