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

John McCall rjmccall at apple.com
Tue Jul 5 12:30:30 CDT 2016


> 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?

John.


More information about the swift-dev mailing list