Commit 3f736d0
committed
Ship the target's libgcc runtime with the toolchain
cc-as-linker downstream (e.g. the OCaml unikernel toolchain) pulls in the
compiler's runtime intrinsics with -lgcc. A GNU cross gcc, and clang with
compiler-rt, ship that runtime on their own search path, so -lgcc resolves with
nothing to do. Clang ships no compiler-rt builtins for the cross target on some
hosts (e.g. macOS), where -print-libgcc-file-name then names a file that does
not exist; there, fall back to a bare-metal GNU cross gcc's libgcc and install
it as the toolchain's libgcc.a. When the compiler provides its own runtime,
install nothing.
The macOS CI installs lld (for ld.lld) and aarch64-elf-gcc (for libgcc).1 parent 8d33cd0 commit 3f736d0
3 files changed
Lines changed: 32 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
147 | 152 | | |
148 | 153 | | |
149 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
540 | 540 | | |
541 | 541 | | |
542 | 542 | | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
543 | 568 | | |
544 | 569 | | |
545 | 570 | | |
| |||
586 | 611 | | |
587 | 612 | | |
588 | 613 | | |
| 614 | + | |
589 | 615 | | |
590 | 616 | | |
591 | 617 | | |
| |||
0 commit comments