On Sat, 13 Dec 2025 23:34:31 -0800 Rudraksha Gupta guptarud@gmail.com wrote:
On 12/13/25 22:06, Miguel Ojeda wrote:
On Sun, Dec 14, 2025 at 12:54 AM Rudraksha Gupta guptarud@gmail.com wrote:
- The kernel boots and outputs via UART when I build the kernel with the
following:
make LLVM=1 ARCH="$arm" CC="${CC:-gcc}"
- The kernel doesn't boot and there is no output via UART when I build
the kernel with the following:
make LLVM=1 ARCH="$arm"
The only difference being: CC="${CC:-gcc}". Is this expected?
It depends on what that resolves to, i.e. your environment etc., i.e. that is resolved before Kbuild is called.
Sorry about that, I should've specified in the original email. The CC resolves to armv7-alpine-linux-musleabihf-gcc.
When both LLVM=1 and the CC=gcc are used, I can insmod the sample rust modules just fine. However, if I only use LLVM=1, my phone doesn't output anything over UART, and I assume that it fails to boot. Interestingly enough, if I just specify LLVM=1 (with no CC=gcc), and remove the rust related configs from the pmos.config fragment, then my phone boots and I can see logs over UART.
Which drivers have you enabled that use Rust? Just having core Rust infrastructure enabled shouldn't cause issues on its own, apart from slightly bigger kernel image.
If just enabling Rust but none of Rust drivers cause issue, I would start looking at
1) if there're any symbols somehow being overwritten by the Rust object files.
2) if the size of kernel is pushed above a certain threshold that your bootloader/firmware is unhappy.
Best, Gary