Skip to content

rts-headers package complications when build compiler with a compiler that has rts-headers. #61

@angerman

Description

@angerman

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

  1. we build rts-headers
  2. 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.

  1. we build the rts-headers package (and augment/shadow/replace the one the boot compiler has)
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions