-
-
Notifications
You must be signed in to change notification settings - Fork 2
79 lines (73 loc) · 2.77 KB
/
Copy pathcreate_one_toolchain.yaml
File metadata and controls
79 lines (73 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
---
name: (internal) Compile one toolchain
on:
workflow_call:
inputs:
crosstool_host_os: { type: string, required: true }
build_host: { type: string, required: true }
target_host: { type: string, required: true }
build_script: { type: string, required: true }
fetch_bootstrap: { type: boolean, required: false, default: true }
toolchain_suffix: { type: string, required: false, default: "" }
env:
TC_WORKDIR: "/t"
EXECUTE_UNDER_DOCKER: true
jobs:
# Split up the build as compiling newlib/libstdc++ targeting ARM takes so damn
# long, and all the state tarballs end up using up all the space on the runner.
phase1:
name: Build toolchain (phase 1)
uses: ./.github/workflows/invoke_crosstool.yaml
with:
crosstool_host_os: ${{ inputs.crosstool_host_os }}
build_host: ${{ inputs.build_host }}
target_host: ${{ inputs.target_host }}
build_script: ${{ inputs.build_script }}
fetch_bootstrap: ${{ inputs.fetch_bootstrap }}
toolchain_suffix: ${{ inputs.toolchain_suffix }}
script_args: "build STOP=cc_for_build"
restore_state: false
phase_number: 1
phase2:
name: Build toolchain (phase 2)
needs: [phase1]
uses: ./.github/workflows/invoke_crosstool.yaml
with:
crosstool_host_os: ${{ inputs.crosstool_host_os }}
build_host: ${{ inputs.build_host }}
target_host: ${{ inputs.target_host }}
build_script: ${{ inputs.build_script }}
fetch_bootstrap: ${{ inputs.fetch_bootstrap }}
toolchain_suffix: ${{ inputs.toolchain_suffix }}
script_args: "build RESTART=cc_for_host STOP=libc_post_cc"
restore_state: true
phase_number: 2
phase3:
name: Build toolchain (phase 3)
needs: [phase2]
uses: ./.github/workflows/invoke_crosstool.yaml
with:
crosstool_host_os: ${{ inputs.crosstool_host_os }}
build_host: ${{ inputs.build_host }}
target_host: ${{ inputs.target_host }}
build_script: ${{ inputs.build_script }}
fetch_bootstrap: ${{ inputs.fetch_bootstrap }}
toolchain_suffix: ${{ inputs.toolchain_suffix }}
script_args: "build RESTART=companion_libs_for_target STOP=companion_libs_for_target"
restore_state: true
phase_number: 3
phase4:
name: Build toolchain (phase 4)
needs: [phase3]
uses: ./.github/workflows/invoke_crosstool.yaml
with:
crosstool_host_os: ${{ inputs.crosstool_host_os }}
build_host: ${{ inputs.build_host }}
target_host: ${{ inputs.target_host }}
build_script: ${{ inputs.build_script }}
fetch_bootstrap: ${{ inputs.fetch_bootstrap }}
toolchain_suffix: ${{ inputs.toolchain_suffix }}
script_args: "build RESTART=binutils_for_target"
save_state: false
toolchain_tarball: true
phase_number: 4