[swift-dev] COFF indirect addressing and protocol conformance tables ABI issues

Saleem Abdulrasool compnerd at compnerd.org
Tue Jul 5 19:56:51 CDT 2016

On Tue, Jul 5, 2016 at 10:30 AM, John McCall <rjmccall at apple.com> wrote:

> > On Jul 3, 2016, at 2:40 PM, Saleem Abdulrasool <compnerd at compnerd.org>
> wrote:
> > Hello again,
> >
> > I come bearing more problems :-).
> >
> > I seem to have found another point in the ABI which prevents an easy
> port of swift to Windows without an emulation layer underneath.  This time
> it deals with the protocol conformance table.  The table is constructed
> with a direct reference to protocol.  However, because the protocol lies in
> an external module, this ends up being a problem as it must be indirectly
> addressed.
> >
> > There is a workaround in place for generating a GOT equivalent entry,
> however, that still doesnt indirect through the pointer, which needs to be
> done to address the executable model on Windows.
> Is it not possible to emit the GOT equivalent entry as a reference to the
> appropriate entry in the import lookup table?

I had tried that, but it would still just be a constant reference to the
value rather than the synthetic.  Perhaps I am misunderstanding something?

> John.

Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160705/0434e62c/attachment.html>

More information about the swift-dev mailing list