4 ms·
Originally, we thought that Linux maintainers were asking us to only support kernels compiled with Clang, because they didn't want to support code built with tw
by JoshTriplett 6y ago
Originally, we thought that Linux maintainers were asking us to only support kernels compiled with Clang, because they didn't want to support code built with two different compilers. However, in the session, Greg Kroah-Hartman specifically said that if it works to build Rust code with the LLVM-based rustc and C code with GCC and link the two together, and there aren't any problems in practice, then that's perfectly fine.
So, we're currently expecting that supporting Rust will not place any requirements on the C compiler you use, unless you want to use cross-language LTO (which we'll eventually want to do, but it won't be a hard requirement for a working kernel).
- jcranmer 6y ago> unless you want to use cross-language LTO (which we'll eventually want to do, but it won't be a hard requirement for a working kernel). Does Linux even work with LTO right now? It seems to do a lot of weird-linking-magic things that I wouldn't expect to work well with LTO.
- JoshTriplett 6y agoAt the moment, I believe the Linux kernel can do LTO with some additional patches, but there are still regular issues. It isn't nearly as well supported as Clang or LLD yet.
- geofft 6y agoThere was a talk right after ours about LTO! I only half paid attention to it because I was catching up on the chat, but it sounds like Google is doing kernel LTO in prod for their internal systems (and maybe also for Android and CrOS?): https://linuxplumbersconf.org/event/7/contributions/798/ https://linuxplumbersconf.org/event/7/contributions/798/ (slide link at the bottom) https://youtu.be/FFjV9f_Ub9o?t=3844 https://youtu.be/FFjV9f_Ub9o?t=3844
- danudey 6y agoICYMI, Microsoft is putting a lot of eggs into the LTO/PGO basket to try to improve Linux performance: https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Exploring-PGO-Linux https://www.phoronix.com/scan.php?page=news_item&px=Microsof...
- robocat 6y agoArticle discussing LTO (Link Time Optimizations, used by Google Pixel) and PGO (Profile Guided Optimizations): https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Exploring-PGO-Linux https://www.phoronix.com/scan.php?page=news_item&px=Microsof...