{"action":"created","issue":{"url":"https://api.github.com/repos/apple/swift/issues/1157","repository_url":"https://api.github.com/repos/apple/swift","labels_url":"https://api.github.com/repos/apple/swift/issues/1157/labels{/name}","comments_url":"https://api.github.com/repos/apple/swift/issues/1157/comments","events_url":"https://api.github.com/repos/apple/swift/issues/1157/events","html_url":"https://github.com/apple/swift/pull/1157","id":130547900,"number":1157,"title":"Discard swift.ld in favor of portable solution and support gold linker in Swift","user":{"login":"hpux735","id":1170900,"avatar_url":"https://avatars.githubusercontent.com/u/1170900?v=3","gravatar_id":"","url":"https://api.github.com/users/hpux735","html_url":"https://github.com/hpux735","followers_url":"https://api.github.com/users/hpux735/followers","following_url":"https://api.github.com/users/hpux735/following{/other_user}","gists_url":"https://api.github.com/users/hpux735/gists{/gist_id}","starred_url":"https://api.github.com/users/hpux735/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hpux735/subscriptions","organizations_url":"https://api.github.com/users/hpux735/orgs","repos_url":"https://api.github.com/users/hpux735/repos","events_url":"https://api.github.com/users/hpux735/events{/privacy}","received_events_url":"https://api.github.com/users/hpux735/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":54,"created_at":"2016-02-02T02:12:32Z","updated_at":"2016-02-15T17:20:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apple/swift/pulls/1157","html_url":"https://github.com/apple/swift/pull/1157","diff_url":"https://github.com/apple/swift/pull/1157.diff","patch_url":"https://github.com/apple/swift/pull/1157.patch"},"body":"This pull request addresses the conformances and metadata sections differently than the former Linux solution.  Unlike the former solution, the size of the sections are not stored as part of the sections themselves.  Rather, section start and end markers are stored in the binary, and are used to compute the size of these sections at load time.\r\n\r\nThis solution is more portable and allows the use of the gold linker, which is far more stable than BFD on ARM targets.  Specifically, the gold linker does not generate ```R_ARM_COPY``` relocations, which break protocol conformances, though BFD does.  Although gold does address some of these issues, ```-Bsymbolic``` is still required because swift still generates ```R_ARM_REL32``` relocations, which are illegal.  Finally, because the JIT images also contain the illegal relocations, RuntimeDyld refuses to process them, and as such the interpreter tests are disabled on ARM..\r\n\r\nIn further support of the use of the gold linker on arm-linux, we added a switch to swift for the selection of linker, and under arm, the gold linker is selected as the default.\r\n\r\nThis work was the topic of an RFC on the swift-dev mailing list:\r\nhttps://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160111/000822.html\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/apple/swift/issues/comments/184311461","html_url":"https://github.com/apple/swift/pull/1157#issuecomment-184311461","issue_url":"https://api.github.com/repos/apple/swift/issues/1157","id":184311461,"user":{"login":"jrose-apple","id":15097531,"avatar_url":"https://avatars.githubusercontent.com/u/15097531?v=3","gravatar_id":"","url":"https://api.github.com/users/jrose-apple","html_url":"https://github.com/jrose-apple","followers_url":"https://api.github.com/users/jrose-apple/followers","following_url":"https://api.github.com/users/jrose-apple/following{/other_user}","gists_url":"https://api.github.com/users/jrose-apple/gists{/gist_id}","starred_url":"https://api.github.com/users/jrose-apple/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrose-apple/subscriptions","organizations_url":"https://api.github.com/users/jrose-apple/orgs","repos_url":"https://api.github.com/users/jrose-apple/repos","events_url":"https://api.github.com/users/jrose-apple/events{/privacy}","received_events_url":"https://api.github.com/users/jrose-apple/received_events","type":"User","site_admin":false},"created_at":"2016-02-15T17:20:35Z","updated_at":"2016-02-15T17:20:35Z","body":"@gribozavr My comments were all addressed, LGTM. :-)"}}