<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thanks for the input about the gold linker so far, everyone.<div class=""><br class=""></div><div class="">I have a few follow-up questions.</div><div class=""><br class=""></div><div class="">First up is whether there is any desire to keep swift.ld at all. &nbsp;I believe that I’ll be able to use the same object files using the binutils linker, so the mechanics in place for gold will function in both cases. &nbsp;I don’t know if there is another compelling reason for keeping it. &nbsp;Thoughts?</div><div class=""><br class=""></div><div class="">Second, Orlando believes that it’s possible to use C++ to generate the object files rather that assembler. &nbsp;This would make these source files much more portable and easier to maintain. &nbsp;There is a catch, however. In the assembler version there is no runtime impact at all; the C++ version requires a subtraction at load time. &nbsp;The cost is pretty minimal, but it’s worth considering. &nbsp;Changing from one implementation to another is very simple.</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; line-height: normal;" class="">Finally, tying in the discussion of multi-architecture/multi-sdk cross compilation on linux, I noticed that swift.ld is copied to a 2-d array of SDKs and Architectures. &nbsp;Considering that effory this effort (may?) not support a functional use case anyway, is it desirable to keep this behavior? &nbsp;It would certainly simplify the generation of the object files. &nbsp;I’ve already done the work, so it’s not that I’m trying to avoid it. ;)</div></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">Thanks again for your comments and thoughts,</div><div style="margin: 0px; line-height: normal;" class="">- Will</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 14, 2016, at 9:26 PM, William Dillon via swift-dev &lt;<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">On Jan 14, 2016, at 9:19 PM, Joe Groff &lt;<a href="mailto:jgroff@apple.com" class="">jgroff@apple.com</a>&gt; wrote:</div><div class=""><blockquote type="cite" class="" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">On Jan 14, 2016, at 11:07 AM, William Dillon via swift-dev &lt;<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>&gt; wrote:<br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class="">1. Is moving to or supporting Gold within the swift toolchain (not building swift itself) a goal, non-goal, or not desired?<br class=""><br class=""></blockquote><br class="">I can't speak for the project, but I can speak for myself.<br class="">My naive understanding is that swift uses two linkers because 'INSERT<br class="">AFTER' linker script directive isn't supported (in gold). I read a lot about<br class="">that -- and I felt like the gold developers didn't care about adding<br class="">this command as it's mainly of use for the default linker script<br class="">shipped with ld.bfd.<br class="">They also provided an alternative way to obtain the same semantics<br class="">without providing an additional directive. Other than that, I don't<br class="">know any other reasons why gold shouldn't be used.<br class=""><br class=""></blockquote><br class="">That’s right, AFAIK. &nbsp;Orlando developed a system using two assembler files that bookend the objects during link to achieve the same result as the ld script. &nbsp;Additionally, this method works with BFD, so swift.ld can be discarded entirely.<br class=""></blockquote><br class="" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">That sounds like a great improvement. Supporting gold for the entire build process would be great. Any idea if the assembler input would also work on FreeBSD or other platforms?</span><br class="" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"></div></blockquote></div><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Yes, as long as you’re using clang, it should work in FreeBSD. &nbsp;Darwin doesn’t require this at all AFAIK. &nbsp;So, that would support Linux, FreeBSD, and Darwin, all without swift.ld.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">- Will</div><img src="https://u2002410.ct.sendgrid.net/wf/open?upn=uCUFpGLUoBzd6VlLevGlN6zbiKwOlCB4F-2F5tkA0uYIDYG-2FnHoqFuHvYbNviAhQri94aJOQH9oaqEoF8PiPdRIDf8PYExZxuyuL2oVwE0IuahNYo6K1mzT7LTfR-2B9ov5KieFi5vZtEOzkzq-2BIE2Tk4QlYdcyWMT-2B-2FZnskxqE12Xiz5Sqxeyq0jzpx0wSSIfuUwcPeaxParlG76WR3O2JMB-2BQlO9-2FIfMTfteEzkPN6r-2Fo-3D" alt="" width="1" height="1" border="0" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; height: 1px !important; width: 1px !important; border-width: 0px !important; margin: 0px !important; padding: 0px !important;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""><span class="Apple-converted-space">&nbsp;</span></span><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">swift-dev mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:swift-dev@swift.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">swift-dev@swift.org</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-dev" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">https://lists.swift.org/mailman/listinfo/swift-dev</a></div></blockquote></div><br class=""></div></body></html>