-
Notifications
You must be signed in to change notification settings - Fork 1
Description
This basically means, the compiler (when built) is linked against a newer set of headers, than what the boot compiler provides. Am I missing something more here?
Thus if we make the boot compiler build rts-headers (the new ones from source), and use those when building the compiler. It would see the new headers?
Case 1: boot compiler without rts-headers
- we build rts-headers
- we build compiler against these rts-headers (yet link the binary against the old rts, as the compiler, and it's rts are symbiotic)
Case 1: boot compiler with rts-headers package.
- we build the rts-headers package (and augment/shadow/replace the one the boot compiler has)
- we build the compiler against these (new) rts-headers (yet link the binary against the old (boot compiler) rts).
My understanding is: we always want the compiler to see the latest headers when building the compiler package.
The complication @hsyl20 correctly outlined about is that
+ compiler
+ rts
+ rts-headers
As such, we can't just trivially repalce the rts-headers here.
We could make the compiler during bootstrap not depend on the rts, and rely on ghc always injecting the rts package anyway when linking?
This is a bit similar to the ghc-boot-th[-next] issue.