This is the mail archive of the
mailing list for the binutils project.
Re: Linking EFI applications with x86_64-pc-mingw32-ld
2012/4/2 Shea Levy <email@example.com>:
> On 04/02/2012 03:50 PM, Kai Tietz wrote:
>> 2012/4/2 Andreas Schwab<firstname.lastname@example.org>:
>>> NightStrike<email@example.com> ?writes:
>>>> I don't know the answer to your question, but at the very least, you
>>>> should try using the x86_64-w64-mingw32 target. ?Notice that the
>>>> middle part of the triplet is not -pc-.
>>> The vendor part of the triplet is just for information.
>> Right, ?the vendor-part in triplet for binutils is just for
>> information. ?But yes, it is possible to link EFI COFF code by it.
>> You need to specify the proper entry-point (by -e option) and you need
>> to set the proper sub-system ?There are pre-defined aliases for
>> "native" (1)
>> "windows" (2)
>> "console" (3)
>> "posix" (7)
>> "wince" (9)
>> "xbox" (14)
>> So can specify subsystem by ld's option '-subsystem=". ?The argument
>> of this option is either one of the strings above or a number.
> Thanks, this is getting me closer to what I want. Now, I have an object file
> that just has a .text section, but, when linked with x86_64-w64-mingw32-ld
> -e main -subsystem=10, a .idata section is added. Additionally, .text is
> extended with several zeros (for alignment I'm guessing?) and the symbol
> table is claiming there's a (completely 0-filled) __CTOR_LIST__ and
> __DTOR_LIST__ in the middle of the added 0s. Can the added section and
> padding be safely removed?
> Shea Levy
Sure, they can. Best would be if you are using a specific spec-file
for ld here. (see option -T script-file). By it you can tell ld not
to generate __CTOR_LIST__, DTOR_LIST, and/or specific other section.
Also you can change by it the section alignments and other stuff.