Hadrian build of rts is broken due to missing assembler file(s) compilation.
While trying to debug hadrian build failure on ppc64le-linux platform I've found out that for whatever reason happening between hadrian and cabal, the rts build does not build/include assembler files specified in rts.cabal:
403 if arch(i386) || arch(powerpc) || arch(powerpc64) 404 asm-sources: AdjustorAsm.S 405 if arch(powerpc) || arch(powerpc64) || arch(powerpc64le) || arch(s390x) 406 asm-sources: StgCRunAsm.S
due to this omission GHC can't be build with hadrian on all the platforms mentioned above (my claim!). At least shared rts library fails on ppc64le-linux for me with this:
Warning: -rtsopts and -with-rtsopts have no effect with -shared. Call hs_init_ghc() from your main() function to set these options. rts/Schedule.c:481:0: error: error: undefined reference to 'StgRun' | 481 | r = StgRun((StgFunPtr) stg_returnToStackTop, &cap->r); | ^ collect2: error: ld returned 1 exit status `cc' failed in phase `Linker'. (Exit code: 1)
and that's due to fact that StgRun is defined solely in rts/StgCRunAsm.S for ppc64le and the file is not included in the build hence linkage failure.
When I switch hadrian verbose mode on, I see cabal steps there listing all the cmm files and all the c files, but asm files are completely missing.
Depending on what exactly platforms above implements in assembler files, either native or cross-compile build with hadrian would probably fail.
I'm going to test cross-compilation and native build of i386 and will report.