Consider moving to large memory model on Windows
Windows likes to keep all of its code in address space below 2 GB as this is what is required by the IMAGE_REL_AMD64_ADDR32
relocation. This tends to cause linker failures on Windows (#16409 (closed)). One way to avoid this (at least for code produced by GHC) is to compile our code with a large memory model (e.g. -mcmodel=large
or -mcmodel=medium
). This will give us significantly more flexibility in linking (in the case of large
allowing us to reserve the sub-2GB region for native libraries compiled with the small memory model) in exchange for large (and perhaps slightly slower) code.