|
47 | 47 | # │ ┌─────────┐ ┌──────────┐ ┌─────────┐ │ |
48 | 48 | # │ │ ghc2 │ │ ghc-pkg2 │ │ ... │ │ |
49 | 49 | # │ │ │ │ │ │ │ │ |
50 | | -# │ └─────────┘ └──────────┘ └─────────┘ │ |
51 | | -# │ (built with ghc1, linked with rts1) │ |
| 50 | +# │ └─────┬───┘ └──────────┘ └─────────┘ │ |
| 51 | +# │ │ (built with ghc1, linked with rts1) │ |
| 52 | +# │ │ │ |
| 53 | +# │ ·····│································································ │ |
| 54 | +# │ ▼ │ |
| 55 | +# │ Stage 3 (Cross-compilation) │ |
| 56 | +# │ │ │ |
| 57 | +# │ │ ┌─────────────────────────────────┐ │ |
| 58 | +# │ └────►│ target-specific libs (pkg3) │ │ |
| 59 | +# │ │ • javascript-unknown-ghcjs │ │ |
| 60 | +# │ │ • wasm32-unknown-wasi │ │ |
| 61 | +# │ │ • x86_64-musl-linux │ │ |
| 62 | +# │ │ • etc. │ │ |
| 63 | +# │ └─────────────────────────────────┘ │ |
| 64 | +# │ (built with ghc2 for different target platforms) │ |
52 | 65 | # │ │ |
53 | 66 | # │ ┌─────────────────────────────────┐ │ |
54 | 67 | # │ │ SHIPPED RESULT │ │ |
55 | 68 | # │ │ ┌─────────┐ ┌─────────┐ │ │ |
56 | 69 | # │ │ │ pkg1 │ + │ ghc2 │ │ │ |
57 | 70 | # │ │ └─────────┘ └─────────┘ │ │ |
| 71 | +# │ │ │ │ |
| 72 | +# │ │ Optional cross-compilation: │ │ |
| 73 | +# │ │ ┌─────────────────────────┐ │ │ |
| 74 | +# │ │ │ target-specific pkg3 │ │ │ |
| 75 | +# │ │ └─────────────────────────┘ │ │ |
58 | 76 | # │ └─────────────────────────────────┘ │ |
59 | 77 | # │ │ |
60 | 78 | # │ Notes: │ |
|
65 | 83 | # │ • ghc1 is linked against rts0, ghc2 against rts1 │ |
66 | 84 | # | • augmented packages are needed because ghc1 may require newer | |
67 | 85 | # | versions or even new pacakges, not shipped with the boot compiler | |
| 86 | +# │ • Stage 3 is optional: ghc2 builds libraries for cross-compilation │ |
| 87 | +# │ targets (different architectures/platforms) │ |
68 | 88 | # │ │ |
69 | 89 | # └─────────────────────────────────────────────────────────────────────────┘ |
70 | 90 |
|
|
0 commit comments