{"id":6,"date":"2016-05-03T22:18:00","date_gmt":"2016-05-03T14:18:00","guid":{"rendered":"http:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/?p=6"},"modified":"2017-03-08T03:32:21","modified_gmt":"2017-03-07T19:32:21","slug":"hello-gsoc-2016","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/2016\/05\/03\/hello-gsoc-2016\/","title":{"rendered":"Hello GSoC 2016 !"},"content":{"rendered":"<p>I&#8217;m very glad that I&#8217;m accepted by Gentoo as a participant of Google Summer of Code this year.\u00a0During this summer, I&#8217;ll be working on building a clang-based toolchain for Gentoo.<\/p>\n<p>Clang is a modern C\/C++ compiler developed by LLVM, famous for its modular design and non-intrusive license. The ideal result of this project is to provide\u00a0a Gentoo profile, where\u00a0clang is\u00a0the default compiler in place of gcc.<\/p>\n<p>As clang is written in C++, it needs a C++ runtime to work, which are basically a C standard library, a C++ standard library, a C++ ABI library and a stack unwinder. On a typical Linux host, glibc and libstdc++ are the de facto C and C++ standard libraries respectively. The functionality of C++ ABI library is also integrated\u00a0in\u00a0libstdc++; the\u00a0stack unwinder is implemented in\u00a0libgcc.<\/p>\n<p>libstdc++ and libgcc are both parts of GCC, which won&#8217;t be available when we deploy clang as the default compiler. Luckily, besides clang, LLVM also developed a complete implementation of the C++ runtime, consisting of three libraries: libc++, libc++abi and libunwind. Unlike GCC, the C++ ABI library is implemented separately. To decouple our toolchain further from the GNU toolset, we&#8217;ll use musl as the libc.<\/p>\n<p><strong>Sum it up<\/strong><\/p>\n<p>In this project, we&#8217;ll build a toolchain with clang as the compiler, musl as libc and a C++ runtime composed of libc++, libc++abi and libunwind. If everything goes smoothly, this setup will be offered as a Gentoo profile; users who like the neat features of clang thus have the chance to say goodbye to GCC \ud83d\ude42<\/p>\n<p>I&#8217;ll update this blog regularly to reflect my most recent progress and share technical stuff that might be helpful to others. Stay tuned !<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m very glad that I&#8217;m accepted by Gentoo as a participant of Google Summer of Code this year.\u00a0During this summer, I&#8217;ll be working on building a clang-based toolchain for Gentoo. Clang is a modern C\/C++ compiler developed by LLVM, famous for its modular design and non-intrusive license. The ideal result of this project is to &hellip; <a href=\"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/2016\/05\/03\/hello-gsoc-2016\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Hello GSoC 2016 !<\/span><\/a><\/p>\n","protected":false},"author":161,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/posts\/6"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/users\/161"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":5,"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/posts\/6\/revisions"}],"predecessor-version":[{"id":18,"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/posts\/6\/revisions\/18"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/media?parent=6"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/categories?post=6"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc2016-native-clang\/wp-json\/wp\/v2\/tags?post=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}