Skip to content

Bad Windows PE handling in GHC runtime linker

Playing with -fsplit-sections on Windows I've found a pile of ancient (it was borrowed from Hugs interpreter code and I don't even know when was it created), absolutely redundant and plain wrong code in RTS linker.

Technically it is a bug, but it doesn't break things when used with current Windows binutils with no special linker scripts involved.

OTOH, it slows down runtime linker on Windows noticeably and thus can be considered as a performance bug.

I've attached the patch which fixes this.

The nice side-effect for existing users is that GHCi now loads compiled object code much faster on Windows.

Trac metadata
Trac field Value
Version
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System (Linker)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information