<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=""><br class=""><div><blockquote type="cite" class=""><div class="">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" 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;" class="">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 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;" class=""><span 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;" class="">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 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;" class=""><br 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;" class=""></div></blockquote></div><br class=""><div class="">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=""><br class=""></div><div class="">- Will</div></body></html>