On 12/15/25 03:19, Gary Guo wrote:
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.
Just these ones:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/device/t...
I'm starting to think this might be an clang issue. Ran this on qemu-arm and encountering similar issues:
https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/issues/2635#note_...
If just enabling Rust but none of Rust drivers cause issue, I would start looking at
- if there're any symbols somehow being overwritten by the Rust object
files.
If I suspect it to be a clang issue now, is this still the best way to go about looking into the problem? This is a little bit out of my domain, but happy to learn.
- if the size of kernel is pushed above a certain threshold that your
bootloader/firmware is unhappy.
I believe lk2nd (fastboot bootloader) would complain if this were the case. I'm currently flashing lk2nd into the boot partition (to override the proprietary bootloader's defaults) and then flashing posmarketOS kernel and rootfs in data and system partitions.
Best, Gary