{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3115","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3115/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3115/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3115/events","html_url":"https://github.com/RIOT-OS/RIOT/pull/3115","id":82703287,"number":3115,"title":"core: Add C11 atomic helpers for GCC","user":{"login":"gebart","id":317506,"avatar_url":"https://avatars.githubusercontent.com/u/317506?v=3","gravatar_id":"","url":"https://api.github.com/users/gebart","html_url":"https://github.com/gebart","followers_url":"https://api.github.com/users/gebart/followers","following_url":"https://api.github.com/users/gebart/following{/other_user}","gists_url":"https://api.github.com/users/gebart/gists{/gist_id}","starred_url":"https://api.github.com/users/gebart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gebart/subscriptions","organizations_url":"https://api.github.com/users/gebart/orgs","repos_url":"https://api.github.com/users/gebart/repos","events_url":"https://api.github.com/users/gebart/events{/privacy}","received_events_url":"https://api.github.com/users/gebart/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/core","name":"core","color":"0052cc"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/NEEDS%20SQUASHING","name":"NEEDS SQUASHING","color":"009800"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/new%20feature","name":"new feature","color":"e11d21"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/Ready%20for%20CI%20build","name":"Ready for CI build","color":"bfdadc"}],"state":"open","locked":false,"assignee":{"login":"josephnoir","id":2156518,"avatar_url":"https://avatars.githubusercontent.com/u/2156518?v=3","gravatar_id":"","url":"https://api.github.com/users/josephnoir","html_url":"https://github.com/josephnoir","followers_url":"https://api.github.com/users/josephnoir/followers","following_url":"https://api.github.com/users/josephnoir/following{/other_user}","gists_url":"https://api.github.com/users/josephnoir/gists{/gist_id}","starred_url":"https://api.github.com/users/josephnoir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josephnoir/subscriptions","organizations_url":"https://api.github.com/users/josephnoir/orgs","repos_url":"https://api.github.com/users/josephnoir/repos","events_url":"https://api.github.com/users/josephnoir/events{/privacy}","received_events_url":"https://api.github.com/users/josephnoir/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/12","html_url":"https://github.com/RIOT-OS/RIOT/milestones/Release%202015.06","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/12/labels","id":1088995,"number":12,"title":"Release 2015.06","description":"This release aims mainly to include the brand new network stack.","creator":{"login":"OlegHahm","id":1590423,"avatar_url":"https://avatars.githubusercontent.com/u/1590423?v=3","gravatar_id":"","url":"https://api.github.com/users/OlegHahm","html_url":"https://github.com/OlegHahm","followers_url":"https://api.github.com/users/OlegHahm/followers","following_url":"https://api.github.com/users/OlegHahm/following{/other_user}","gists_url":"https://api.github.com/users/OlegHahm/gists{/gist_id}","starred_url":"https://api.github.com/users/OlegHahm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlegHahm/subscriptions","organizations_url":"https://api.github.com/users/OlegHahm/orgs","repos_url":"https://api.github.com/users/OlegHahm/repos","events_url":"https://api.github.com/users/OlegHahm/events{/privacy}","received_events_url":"https://api.github.com/users/OlegHahm/received_events","type":"User","site_admin":false},"open_issues":61,"closed_issues":141,"state":"open","created_at":"2015-04-29T10:11:27Z","updated_at":"2015-06-05T15:55:01Z","due_on":"2015-06-29T22:00:00Z","closed_at":null},"comments":14,"created_at":"2015-05-30T05:02:26Z","updated_at":"2015-06-11T11:35:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/3115","html_url":"https://github.com/RIOT-OS/RIOT/pull/3115","diff_url":"https://github.com/RIOT-OS/RIOT/pull/3115.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/3115.patch"},"body":"This PR adds support for GCC to use atomic operations in C11 on platforms which lack hardware support for lock-free atomics. These helper functions are required for std::atomic in C++11 on Cortex-M0, e.g. `tests/cpp11_mutex`. Without this PR we get linker errors on CM0, but not on CM3, CM4.\r\n\r\nTested on mulle (cortex-m4) that the functions are not linked if GCC does know how to generate lock-free atomic hardware operations.\r\n\r\nPlease test `tests/cpp11_*` on cortex-m0 platforms (nrf51822, stm32f0 etc.)\r\n\r\nuse `arm-none-eabi-objdump -d bin/stm32f0discovery/cpp11_mutex.elf | less` and search for `_atomic_` (type `/_atomic_[enter]`) to see the actual calls to the helpers."},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/111093254","html_url":"https://github.com/RIOT-OS/RIOT/pull/3115#issuecomment-111093254","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/3115","id":111093254,"user":{"login":"gebart","id":317506,"avatar_url":"https://avatars.githubusercontent.com/u/317506?v=3","gravatar_id":"","url":"https://api.github.com/users/gebart","html_url":"https://github.com/gebart","followers_url":"https://api.github.com/users/gebart/followers","following_url":"https://api.github.com/users/gebart/following{/other_user}","gists_url":"https://api.github.com/users/gebart/gists{/gist_id}","starred_url":"https://api.github.com/users/gebart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gebart/subscriptions","organizations_url":"https://api.github.com/users/gebart/orgs","repos_url":"https://api.github.com/users/gebart/repos","events_url":"https://api.github.com/users/gebart/events{/privacy}","received_events_url":"https://api.github.com/users/gebart/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T11:35:18Z","updated_at":"2015-06-11T11:35:18Z","body":"I want to be able to reproduce the error on my machine, but I have not had the time to install a test container with the same toolchain version as Travis."}}