{"action":"created","issue":{"url":"https://api.github.com/repos/mantidproject/mantid/issues/15274","repository_url":"https://api.github.com/repos/mantidproject/mantid","labels_url":"https://api.github.com/repos/mantidproject/mantid/issues/15274/labels{/name}","comments_url":"https://api.github.com/repos/mantidproject/mantid/issues/15274/comments","events_url":"https://api.github.com/repos/mantidproject/mantid/issues/15274/events","html_url":"https://github.com/mantidproject/mantid/pull/15274","id":133093491,"number":15274,"title":"CMake option enabling link-time optimization with GCC ","user":{"login":"quantumsteve","id":5920552,"avatar_url":"https://avatars.githubusercontent.com/u/5920552?v=3","gravatar_id":"","url":"https://api.github.com/users/quantumsteve","html_url":"https://github.com/quantumsteve","followers_url":"https://api.github.com/users/quantumsteve/followers","following_url":"https://api.github.com/users/quantumsteve/following{/other_user}","gists_url":"https://api.github.com/users/quantumsteve/gists{/gist_id}","starred_url":"https://api.github.com/users/quantumsteve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quantumsteve/subscriptions","organizations_url":"https://api.github.com/users/quantumsteve/orgs","repos_url":"https://api.github.com/users/quantumsteve/repos","events_url":"https://api.github.com/users/quantumsteve/events{/privacy}","received_events_url":"https://api.github.com/users/quantumsteve/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mantidproject/mantid/labels/Misc:%20Core","name":"Misc: Core","color":"5319e7"},{"url":"https://api.github.com/repos/mantidproject/mantid/labels/Misc:%20Maintenance","name":"Misc: Maintenance","color":"d4c5f9"},{"url":"https://api.github.com/repos/mantidproject/mantid/labels/State:%20In%20Progress","name":"State: In Progress","color":"fbca04"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/mantidproject/mantid/milestones/5","html_url":"https://github.com/mantidproject/mantid/milestones/Release%203.7","labels_url":"https://api.github.com/repos/mantidproject/mantid/milestones/5/labels","id":1106939,"number":5,"title":"Release 3.7","description":"","creator":{"login":"peterfpeterson","id":404003,"avatar_url":"https://avatars.githubusercontent.com/u/404003?v=3","gravatar_id":"","url":"https://api.github.com/users/peterfpeterson","html_url":"https://github.com/peterfpeterson","followers_url":"https://api.github.com/users/peterfpeterson/followers","following_url":"https://api.github.com/users/peterfpeterson/following{/other_user}","gists_url":"https://api.github.com/users/peterfpeterson/gists{/gist_id}","starred_url":"https://api.github.com/users/peterfpeterson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterfpeterson/subscriptions","organizations_url":"https://api.github.com/users/peterfpeterson/orgs","repos_url":"https://api.github.com/users/peterfpeterson/repos","events_url":"https://api.github.com/users/peterfpeterson/events{/privacy}","received_events_url":"https://api.github.com/users/peterfpeterson/received_events","type":"User","site_admin":false},"open_issues":557,"closed_issues":70,"state":"open","created_at":"2015-05-12T15:38:13Z","updated_at":"2016-02-14T22:45:23Z","due_on":"2016-06-05T23:00:00Z","closed_at":null},"comments":4,"created_at":"2016-02-11T21:37:21Z","updated_at":"2016-02-14T22:45:23Z","closed_at":"2016-02-14T22:45:23Z","pull_request":{"url":"https://api.github.com/repos/mantidproject/mantid/pulls/15274","html_url":"https://github.com/mantidproject/mantid/pull/15274","diff_url":"https://github.com/mantidproject/mantid/pull/15274.diff","patch_url":"https://github.com/mantidproject/mantid/pull/15274.patch"},"body":"### THIS PR DEPENDS ON #15273!\r\n\r\nSome of the new GCC 5 flags introduced in PR #15273 are most effective when link-time optimization (LTO) is enabled. This pull request creates an option to enable LTO. \r\n\r\nFor earlier GCC versions, it is disabled by default. There appears to be [high memory utilization with GCC 4.8](http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-2-firefox.html). In case someone still wants to try it with GCC 4.8, I left in the additional flags required in that version to produce only the slim object files.\r\n\r\nI think better diagnostic information about devirtualization opportunities, improved code quality and much smaller file sizes is worth the tradeoff, but am labeling this core because of the increase in build times. Individual developers building in debug mode will be unaffected and have the option to turn off LTO in release builds. When more build servers are using GCC 5+, we can decide whether to turn it off for PR and other frequently-run jobs.\r\n\r\ntesting: Please double-check that I have the correct flags set and that they are being passed to both the compiler and linker. Verify that this option can be enabled/disabled. "},"comment":{"url":"https://api.github.com/repos/mantidproject/mantid/issues/comments/183995821","html_url":"https://github.com/mantidproject/mantid/pull/15274#issuecomment-183995821","issue_url":"https://api.github.com/repos/mantidproject/mantid/issues/15274","id":183995821,"user":{"login":"quantumsteve","id":5920552,"avatar_url":"https://avatars.githubusercontent.com/u/5920552?v=3","gravatar_id":"","url":"https://api.github.com/users/quantumsteve","html_url":"https://github.com/quantumsteve","followers_url":"https://api.github.com/users/quantumsteve/followers","following_url":"https://api.github.com/users/quantumsteve/following{/other_user}","gists_url":"https://api.github.com/users/quantumsteve/gists{/gist_id}","starred_url":"https://api.github.com/users/quantumsteve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quantumsteve/subscriptions","organizations_url":"https://api.github.com/users/quantumsteve/orgs","repos_url":"https://api.github.com/users/quantumsteve/repos","events_url":"https://api.github.com/users/quantumsteve/events{/privacy}","received_events_url":"https://api.github.com/users/quantumsteve/received_events","type":"User","site_admin":false},"created_at":"2016-02-14T22:45:23Z","updated_at":"2016-02-14T22:45:23Z","body":"Whatever is causing the linking errors is subtle and will take significant effort to understand and fix. Even without LTO the new GCC flags produce a lot of warnings. \r\n\r\nI'm going to close this PR for now and potentially revisit it after the code reorg."}}