check-ppr not linked against a dynamic RTS while using hadrian
Summary
Using hadrian/build -c -j test
results in check-ppr
being linked against a non-dynamic RTS. On s390x there is no RTS linker available. Therefore, a couple of tests (Ppr027, Ppr040, Ppr043, T13199, T13550, T13942, T14289, T14289b, T14289c) fail as for example:
=====> Ppr027(normal) 1 of 1 [0, 0, 0]
cd "/tmp/ghctest-t9__v444/test spaces/testsuite/tests/printer/Ppr027.run" && $MAKE -s --no-print-directory ppr027 <
Wrong exit code for Ppr027()(expected 0 , actual 2 )
Stderr ( Ppr027 ):
check-ppr: /ghc/_build/stage1/lib/s390x-linux-ghc-8.11.0.20200609/ghc-prim-0.6.1/libHSghc-prim-0.6.1.a: RTS linker not implemented on s390
check-ppr: loadArchive "/ghc/_build/stage1/lib/s390x-linux-ghc-8.11.0.20200609/ghc-prim-0.6.1/libHSghc-prim-0.6.1.a": failed
gmake: *** [Makefile:115: ppr027] Error 1
*** unexpected failure for Ppr027(normal)
Interestingly, in !3481 (closed) it has been observed that for PowerPC---which has no RTS linker, too---using make
the mentioned test cases succeed which means check-ppr
must have been linked against a dynamic RTS on PowerPC.
For verification I hard coded -dynamic
into hadrian/src/Rules/Test.hs and ran the test suite which confirmed that all mentioned tests pass.
Any idea how to fix this? Is there actually any reason to build a non-dynamic RTS in case the target does not have a RTS linker?