{"action":"created","issue":{"url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/issues/34","labels_url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/issues/34/labels{/name}","comments_url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/issues/34/comments","events_url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/issues/34/events","html_url":"https://github.com/SuperHouse/esp-open-rtos/pull/34","id":103443262,"number":34,"title":"Compile by default with -ffunction-sectons -fdata-sections","user":{"login":"projectgus","id":205573,"avatar_url":"https://avatars.githubusercontent.com/u/205573?v=3","gravatar_id":"","url":"https://api.github.com/users/projectgus","html_url":"https://github.com/projectgus","followers_url":"https://api.github.com/users/projectgus/followers","following_url":"https://api.github.com/users/projectgus/following{/other_user}","gists_url":"https://api.github.com/users/projectgus/gists{/gist_id}","starred_url":"https://api.github.com/users/projectgus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectgus/subscriptions","organizations_url":"https://api.github.com/users/projectgus/orgs","repos_url":"https://api.github.com/users/projectgus/repos","events_url":"https://api.github.com/users/projectgus/events{/privacy}","received_events_url":"https://api.github.com/users/projectgus/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-08-27T07:07:40Z","updated_at":"2015-08-27T08:11:37Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/pulls/34","html_url":"https://github.com/SuperHouse/esp-open-rtos/pull/34","diff_url":"https://github.com/SuperHouse/esp-open-rtos/pull/34.diff","patch_url":"https://github.com/SuperHouse/esp-open-rtos/pull/34.patch"},"body":"Shrinks size of 'http_get' example by about 3.5%.\r\n\r\nAdding as a PR instead of merging directly because I'm a little suspicious about potential downsides. Looking at disassembly it looks fine, but I have a feeling in some circumstances there may be relaxations the compiler would otherwise have avoided, that now can't be avoided with -ffunction-sections because the target is in a different section... I haven't found that happening much yet, though.\r\n\r\n@foogod, @jcmvbkbc, @igrr - do any of you have experience/thoughts regarding this? Do you think it's a good option to use with lx106?"},"comment":{"url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/issues/comments/135335621","html_url":"https://github.com/SuperHouse/esp-open-rtos/pull/34#issuecomment-135335621","issue_url":"https://api.github.com/repos/SuperHouse/esp-open-rtos/issues/34","id":135335621,"user":{"login":"jcmvbkbc","id":166731,"avatar_url":"https://avatars.githubusercontent.com/u/166731?v=3","gravatar_id":"","url":"https://api.github.com/users/jcmvbkbc","html_url":"https://github.com/jcmvbkbc","followers_url":"https://api.github.com/users/jcmvbkbc/followers","following_url":"https://api.github.com/users/jcmvbkbc/following{/other_user}","gists_url":"https://api.github.com/users/jcmvbkbc/gists{/gist_id}","starred_url":"https://api.github.com/users/jcmvbkbc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcmvbkbc/subscriptions","organizations_url":"https://api.github.com/users/jcmvbkbc/orgs","repos_url":"https://api.github.com/users/jcmvbkbc/repos","events_url":"https://api.github.com/users/jcmvbkbc/events{/privacy}","received_events_url":"https://api.github.com/users/jcmvbkbc/received_events","type":"User","site_admin":false},"created_at":"2015-08-27T08:11:37Z","updated_at":"2015-08-27T08:11:37Z","body":"> in some circumstances there may be relaxations the compiler would otherwise have avoided, that now can't be avoided with -ffunction-sections because the target is in a different section...\r\n\r\nI can only think of the assembler always emitting l32r + callx0 (the compiler will still emit plain call0 despite -mlongcalls or -ffunction-sections) instead of call0 when the call definitely reaches. But these l32r + callx0 will be folded back to call0 by the linker if the call target is reachable."}}