Passing -threaded does not cause relinking
Summary
I was investigating a bug in hs-opentelemetry which was impeded by a recompilation checker bug that did not consider -threaded while deciding to link again, so I was getting old builds even though I changed the configuration.
Steps to reproduce
GhcBug.hs:
module GhcBug where
import Control.Concurrent
main = putStrLn . show $ rtsSupportsBoundThreads
» ghc -main-is GhcBug GhcBug.hs && ./GhcBug
[1 of 2] Compiling GhcBug ( GhcBug.hs, GhcBug.o ) [Flags changed]
[2 of 2] Linking GhcBug
False
» ghc -threaded -main-is GhcBug GhcBug.hs && ./GhcBug
False
» ghc -fforce-recomp -threaded -main-is GhcBug GhcBug.hs && ./GhcBug
[1 of 2] Compiling GhcBug ( GhcBug.hs, GhcBug.o )
[2 of 2] Linking GhcBug [Objects changed]
True
Expected behavior
I expect that the -threaded flag should tickle the recompilation checker and force the program to be relinked to the correct runtime.
Environment
- GHC version used: 9.4.3 from Nixpkgs
Optional:
- Operating System: macOS
- System Architecture: aarch64