[lld] Support for PECOFF in gnu ld mode

Rui Ueyama ruiu at google.com
Mon Jun 8 20:36:45 PDT 2015


On Mon, Jun 8, 2015 at 7:17 PM, Saleem Abdulrasool <compnerd at compnerd.org>
wrote:

> On Sun, Jun 7, 2015 at 8:45 PM, Rui Ueyama <ruiu at google.com> wrote:
>
>> Hi Martell,
>>
>> The first and the second patches look good. They just add __image_base__
>> as an alias for __ImageBase (I don't know why mingw uses different symbols
>> than regular Windows symbols, though).
>>
>> The rest is to support COFF files with GNU command line driver. I don't
>> know if we want to support that. Do you think even if we have a complete
>> link.exe-compatible linker, we still want to use GNU ld-compatible COFF
>> linker on Windows?
>>
>
> One of the things that lld supposedly supports is all the major formats
> (COFF, ELF, MachO).  The binutils driver supports multiple formats as well,
> and uses the GNU interface for all of them.  It would be convenient if lld
> did the same.  Beyond link (Windows), ld64 (OS X), the GNU interface is
> expected much as the GCC driver is.  I think supporting this interface with
> the ability to switch to any backend would be extremely useful.  Doing so
> requires a layer above to translate the arguments appropriate to each
> backend.
>

That would be awesome if we can do that, but in reality that comes with a
great cost. As far as I can say, we tried hard and now I personally
strongly believe that they are just different that we shouldn't push it
hard to unify them beyond appropriate boundary. That's really going to be a
mess. Many command line options and file formats expects some specific
semantics to a backend. PE/COFF linker expects Windows linking semantics
which is pretty different from Unix's, for example. If we want to write a
command line translator for one linker to the other, we should write a
small shim as an external command.


>
>> On Sun, Jun 7, 2015 at 7:12 PM, Martell Malone <martellmalone at gmail.com>
>> wrote:
>>
>>> Hi All,
>>>
>>> I have added support for PECOFF in gnu ld mode.
>>> Currently it now works to create x86_64 executable for mingw-w64.
>>>
>>> I'm not sure what the review process for lld involves or where i should
>>> send my series of patches so advice going forward would be appreciated as I
>>> plan to work on lld a lot over the next while.
>>>
>>> I am having link errors still on armv7 and i686 that I would love some
>>> help with :)
>>> Attached are the patches and buildlogs for simple hello world programs
>>> under both i686 and x86_64 insight into the i686 link errors would be great
>>> :)
>>> I already know that i686 prepends an underscore to all symbol names but
>>> I don't think this is the cause other devs may know more which is why I ask
>>>
>>> Kind Regards
>>> Martell
>>>
>>>
>>>
>>
>
>
> --
> Saleem Abdulrasool
> compnerd (at) compnerd (dot) org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150608/aa56c7cc/attachment.html>


More information about the llvm-commits mailing list