Re: Failure to build with LLVM for the Wii

Aelin
2026-02-25T01:59:55Z

On 1/29/26 11:31 PM, Nathan Chancellor wrote:
> Hi Link,
>
> On Thu, Jan 29, 2026 at 11:55:46AM +0100, Link Mauve wrote:
>> I’m trying to build the kernel for the Nintendo Wii, using LLVM instead
>> of gcc, in order to bring Rust support to this architecture (and also
>> because my distribution doesn’t ship a cross-compiling gcc), but I get
>> this build issue near the end:
>> ```
>> % make O=wii LLVM=1 ARCH=powerpc -j1
>> make[1]: Entering directory '/home/linkmauve/dev/linux/wii'
>> GEN Makefile
>> CALL ../scripts/checksyscalls.sh
>> DESCEND objtool
>> INSTALL libsubcmd_headers
>> WRAP arch/powerpc/boot/dtbImage.wii
>> objcopy: Unable to recognise the format of the input file `vmlinux'
>> make[3]: *** [../arch/powerpc/boot/Makefile:394: arch/powerpc/boot/dtbImage.wii] Error 1
>> make[2]: *** [../arch/powerpc/Makefile:236: zImage] Error 2
>> make[1]: *** [/home/linkmauve/dev/linux/Makefile:248: __sub-make] Error 2
>> make[1]: Leaving directory '/home/linkmauve/dev/linux/wii'
>> make: *** [Makefile:248: __sub-make] Error 2
>> ```
>>
>> I believe it should use $(OBJCOPY) instead of objcopy, which is set to
>> llvm-objcopy, but couldn’t figure out where it is misconfigured.
>>
>> Thanks for your help!
>
> It is the arch/powerpc/boot/wrapper script:
>
> https://github.com/ClangBuiltLinux/linux/issues/1601
>
> I have a WIP series from long ago that may be a good starting point for
> getting something working but there were some errors I never got around
> to solving before having to shelve it for other issues:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/nathan/linux.git/log/?h=wip/llvm-1-powerpc-boot-wrapper
>
> Maybe something I (or someone else) can get back to soon.
>
> Cheers,
> Nathan
>

Hi Nathan,

your last 3 patches on this branch do indeed fix the wrapper script for
the cross-compilation with LLVM=1 ARCH=powerpc without CROSS_COMPILE set
or GNU binutils in PATH. They look good to me! Would you be willing to
submit them now without touching the VDSO? That part does not seem to be
necessary to fix the wrapper script for this usecase, so it should
strictly be an improvement. I'd also be happy to pick up your patches,
send them and follow-up on feedback if you don't want to do it yourself.

Best regards,
Aelin