{"id":550,"date":"2023-08-02T01:32:02","date_gmt":"2023-08-02T01:32:02","guid":{"rendered":"https:\/\/blogs.gentoo.org\/gsoc\/?p=550"},"modified":"2023-08-02T01:32:02","modified_gmt":"2023-08-02T01:32:02","slug":"weekly-report-9-llvm-libc","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/gsoc\/2023\/08\/02\/weekly-report-9-llvm-libc\/","title":{"rendered":"Weekly report 9, LLVM-libc"},"content":{"rendered":"<p>Hi! This week I&#8217;ve pretty much finished the work on LLVM\/Clang support<br \/>\nfor Crossdev and LLVM-libc ebuild(s). I have sent PRs for Crossdev and<br \/>\nrelated ebuild changes here:<\/p>\n<p>https:\/\/github.com\/gentoo\/crossdev\/pull\/10<br \/>\nhttps:\/\/github.com\/gentoo\/gentoo\/pull\/32136<br \/>\nThis PR includes changes for compiler-rt which are always needed for<br \/>\nClang crossdev, regardless of libc. There are also changes to musl,<br \/>\nkernel-2.eclass (for linux-headers), and a new eclass, cross.eclass.<\/p>\n<p>I made a gentoo.git branch that has LLVM-libc, libc-hdrgen ebuilds and a<br \/>\ngnuconfig patch to support<br \/>\nLLVM-libc. https:\/\/github.com\/gentoo\/gentoo\/compare\/master&#8230;alfredfo:gentoo:gentoo-llvm-libc. I<br \/>\nwant to merge Crossdev changes and ebuilds before merging<br \/>\nthis. Previously all autotools based projects would fail to configure on<br \/>\nLLVM-libc because there was no gnuconfig entry for it.<\/p>\n<p>I have also solved the problem from last week not being able to compile SCUDO<br \/>\ninto LLVM-libc directly. This was caused by two things, 1) LLVM-libc<br \/>\nonly checked for compiler-rt in LLVM_ENABLE_PROJECTS, not<br \/>\nLLVM_ENABLE_RUNTIMES which is needed for using &#8220;llvm-project\/runtimes&#8221;<br \/>\nas root source directory (&#8220;Runtimes build&#8221;).<br \/>\nFix commit:<br \/>\nhttps:\/\/github.com\/llvm\/llvm-project\/commit\/fe9c3c786837de74dc936f8994cd5a53dd8ee708<br \/>\n2) Many compiler-rt configure tests would fail because of LLVM-libc not<br \/>\nsupporting dynamic linking, and therefore disable the build of<br \/>\nSCUDO. This was fixed by passing<br \/>\n-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY. So now I no longer need<br \/>\nto manually compile the source files and append object files into<br \/>\nlibc.a, yay!<\/p>\n<p>Now I will continue to fix packages for using LLVM-libc Crossdev, or<br \/>\nmore likely, add needed functionality into LLVM-libc. I will of course<br \/>\nalso fix any comments I get on my PRs.<\/p>\n<p>&#8212;<br \/>\ncatcream<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi! This week I&#8217;ve pretty much finished the work on LLVM\/Clang support for Crossdev and LLVM-libc ebuild(s). I have sent PRs for Crossdev and related ebuild changes here: https:\/\/github.com\/gentoo\/crossdev\/pull\/10 https:\/\/github.com\/gentoo\/gentoo\/pull\/32136 This PR includes changes for compiler-rt which are always needed &hellip; <a href=\"https:\/\/blogs.gentoo.org\/gsoc\/2023\/08\/02\/weekly-report-9-llvm-libc\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":177,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts\/550"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/users\/177"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/comments?post=550"}],"version-history":[{"count":1,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts\/550\/revisions"}],"predecessor-version":[{"id":551,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/posts\/550\/revisions\/551"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/media?parent=550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/categories?post=550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/gsoc\/wp-json\/wp\/v2\/tags?post=550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}