[swift-dev] Linker script on Linux

Jordan Rose jordan_rose at apple.com
Mon Jan 4 12:57:45 CST 2016


> On Dec 30, 2015, at 17:49, Luke Howard via swift-dev <swift-dev at swift.org> wrote:
> 
> 
>> On 31 Dec 2015, at 12:33 PM, Joe Groff <jgroff at apple.com <mailto:jgroff at apple.com>> wrote:
>> 
>> 
>>> On Dec 30, 2015, at 1:24 AM, Luke Howard via swift-dev <swift-dev at swift.org <mailto:swift-dev at swift.org>> wrote:
>>> 
>>> Per [SR-404], anything that consumed libFoundation could not dynamically cast to a Foundation protocol because the build script was missing the magic swift.ld linker script to advertise the start of the protocol conformances table.
>> 
>> Is it possible that the library is getting linked by clang instead of swiftc? I would expect the swiftc driver to pass the linker script down to ld (but maybe it's not).
> 
> You’re right, clang is being called to link. Changing to swiftc will be a bit more intrusive to the Foundation build scripts (at given my mediocre knowledge of Python) but is probably the right answer.

I have a longstanding desire to do this, but then we have the opposite problem: clang++ knows what extra libraries need to be added in order to link C++ code correctly, and swiftc knows what flags to use to link Swift code correctly. Of course, the libraries with Swift source have little-to-no C++ in them, so maybe it's okay.

Jordan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160104/61ac257a/attachment.html>


More information about the swift-dev mailing list