
Hello, My personal project involves making a port of GHC for an almost bare-bones environment, which doesn't provide runtime linking support. GHC configure script sets `TargetHasRTSLinker` flag, but it seems to be ignored in RTS itself, and the linker is built regardless. Is this a regression, perhaps due to the migration from Makefiles to Hadrian? Or is building RTS without runtime linker no longer supported? Thank you.

Lana Black
Hello,
My personal project involves making a port of GHC for an almost bare-bones environment, which doesn't provide runtime linking support. GHC configure script sets `TargetHasRTSLinker` flag, but it seems to be ignored in RTS itself, and the linker is built regardless.
Just to confirm: By "runtime linking" do you mean dynamic linking or support in the RTS's own linker? In general GHC uses "runtime linking" to mean the latter.
Is this a regression, perhaps due to the migration from Makefiles to Hadrian? Or is building RTS without runtime linker no longer supported?
I suspect what you are observing is expected behavior: The linker is built regardless of whether TargetHasRTSLinker is set. This field is really only used by the testsuite driver to skip tests which would require the RTS linker. Cheers, - Ben

On Tuesday, 13 September 2022 19:18:45 UTC Ben Gamari wrote:
Just to confirm: By "runtime linking" do you mean dynamic linking or support in the RTS's own linker? In general GHC uses "runtime linking" to mean the latter.
Indeed, I mean the latter. Specifically, the code in `rts/linker` in the GHC tree.
I suspect what you are observing is expected behavior: The linker is built regardless of whether TargetHasRTSLinker is set. This field is really only used by the testsuite driver to skip tests which would require the RTS linker.
Makes sense. Thank you!
participants (2)
-
Ben Gamari
-
Lana Black