Skip to content

Commit 2310bce

Browse files
committed
Update to GCC 15.0.1
1 parent 2eb5566 commit 2310bce

8 files changed

Lines changed: 599 additions & 272 deletions

.github/workflows/build.yml

Lines changed: 198 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
id: check-cache
1818
uses: actions/cache@main
1919
with:
20-
key: gcc-14.2.0
20+
key: gcc-15.0.1-0
2121
lookup-only: true
2222
path: |
2323
/tmp/x86_64-linux-gnu.tar.xz
@@ -26,6 +26,24 @@ jobs:
2626
if: ${{ steps.check-cache.outputs.cache-hit != 'true' }}
2727
run: |
2828
bash './build.sh' 'native'
29+
- name: Create logs
30+
if: always()
31+
run: |
32+
declare logs=''
33+
34+
while read file; do
35+
logs+="${file} "
36+
done <<< $(find "/tmp/"*"/build" -wholename '*/config.log')
37+
38+
tar --create --file=- ${logs} | xz --threads='0' --compress -9 > '/tmp/logs.tar.xz'
39+
- name: Upload logs
40+
if: always()
41+
uses: actions/upload-artifact@main
42+
with:
43+
name: logs
44+
if-no-files-found: error
45+
path: |
46+
/tmp/logs.tar.xz
2947
- name: Generate tarball
3048
if: ${{ steps.check-cache.outputs.cache-hit != 'true' }}
3149
run: |
@@ -45,7 +63,7 @@ jobs:
4563
if: ${{ steps.check-cache.outputs.cache-hit != 'true' }}
4664
uses: actions/cache@main
4765
with:
48-
key: gcc-14.2.0
66+
key: gcc-15.0.1-0
4967
path: |
5068
/tmp/x86_64-linux-gnu.tar.xz
5169
/tmp/x86_64-linux-gnu.tar.xz.sha256
@@ -58,22 +76,58 @@ jobs:
5876
strategy:
5977
matrix:
6078
target: [
61-
'ia64-unknown-linux-gnu',
62-
'alpha-unknown-linux-gnu',
79+
# FreeBSD
80+
'x86_64-unknown-freebsd',
81+
'aarch64-unknown-freebsd',
82+
'i386-unknown-freebsd',
83+
84+
# Linux (musl)
85+
'aarch64-unknown-linux-musl',
86+
'x86_64-unknown-linux-musl',
87+
'arm-unknown-linux-musleabihf',
88+
'i386-unknown-linux-musl',
89+
'armv7l-unknown-linux-musleabihf',
90+
91+
# Linux (glibc)
6392
'x86_64-unknown-linux-gnu',
6493
'i386-unknown-linux-gnu',
65-
'arm-unknown-linux-gnueabi',
6694
'arm-unknown-linux-gnueabihf',
67-
'hppa-unknown-linux-gnu',
6895
'aarch64-unknown-linux-gnu',
69-
'mips-unknown-linux-gnu',
70-
'mipsel-unknown-linux-gnu',
71-
'powerpc-unknown-linux-gnu',
72-
's390-unknown-linux-gnu',
73-
's390x-unknown-linux-gnu',
74-
'sparc-unknown-linux-gnu',
75-
'powerpc64le-unknown-linux-gnu',
76-
'mips64el-unknown-linux-gnuabi64'
96+
97+
# OpenBSD
98+
'x86_64-unknown-openbsd',
99+
'i386-unknown-openbsd',
100+
'arm-unknown-openbsd',
101+
'aarch64-unknown-openbsd',
102+
103+
# OpenBSD
104+
'x86_64-unknown-openbsd',
105+
'i386-unknown-openbsd',
106+
'aarch64-unknown-openbsd',
107+
'arm-unknown-openbsd',
108+
109+
# Haiku
110+
'i586-unknown-haiku',
111+
'x86_64-unknown-haiku',
112+
113+
# SerenityOS
114+
'aarch64-unknown-serenity',
115+
'x86_64-unknown-serenity',
116+
'riscv64-unknown-serenity',
117+
118+
# NetBSD
119+
'i386-unknown-netbsdelf',
120+
'x86_64-unknown-netbsd',
121+
122+
# DragonFly BSD
123+
'x86_64-unknown-dragonfly',
124+
125+
# Android
126+
'x86_64-unknown-linux-android',
127+
'i686-unknown-linux-android',
128+
'arm-unknown-linux-androideabi',
129+
'aarch64-unknown-linux-android',
130+
'riscv64-unknown-linux-android'
77131
]
78132
steps:
79133
- uses: actions/checkout@main
@@ -82,7 +136,7 @@ jobs:
82136
- name: Restore from cache
83137
uses: actions/cache@main
84138
with:
85-
key: gcc-14.2.0
139+
key: gcc-15.0.1-0
86140
fail-on-cache-miss: true
87141
path: |
88142
/tmp/x86_64-linux-gnu.tar.xz
@@ -91,12 +145,139 @@ jobs:
91145
run: |
92146
tar --directory='/tmp' --extract --file='/tmp/x86_64-linux-gnu.tar.xz'
93147
mv '/tmp/venti' '/tmp/venti-toolchain'
94-
- name: Build Venti with OBGGCC
148+
- name: Cross-compile Venti to ${{ matrix.target }}
95149
run: |
96150
source './tools/setup_toolchain.sh'
97-
source './submodules/obggcc/tools/setup_toolchain.sh'
151+
152+
if [[ '${{ matrix.target }}' == *'-linux-musl'* ]]; then
153+
declare -r RAIDEN_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Raiden/releases/latest')")"
154+
declare -r RAIDEN_TARBALL='/tmp/toolchain.tar.xz'
155+
declare -r RAIDEN_URL="https://github.com/AmanoTeam/Raiden/releases/download/${RAIDEN_TAG}/x86_64-unknown-linux-gnu.tar.xz"
156+
157+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${RAIDEN_URL}" --output "${RAIDEN_TARBALL}"
158+
tar --directory="$(dirname "${RAIDEN_TARBALL}")" --extract --file="${RAIDEN_TARBALL}"
159+
160+
export RAIDEN_HOME='/tmp/raiden'
161+
export PATH="${RAIDEN_HOME}/bin:${PATH}"
162+
163+
source "${RAIDEN_HOME}/usr/local/share/raiden/autotools/${{ matrix.target }}.sh"
164+
elif [[ '${{ matrix.target }}' == *'-freebsd' ]]; then
165+
declare -r LOKI_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Loki/releases/latest')")"
166+
declare -r LOKI_TARBALL='/tmp/toolchain.tar.xz'
167+
declare -r LOKI_URL="https://github.com/AmanoTeam/Loki/releases/download/${LOKI_TAG}/x86_64-unknown-linux-gnu.tar.xz"
168+
169+
curl --silent --connect-timeout '10' --retry '15' --retry-all-errors --fail --location --url "${LOKI_URL}" --output "${LOKI_TARBALL}"
170+
tar --directory="$(dirname "${LOKI_TARBALL}")" --extract --file="${LOKI_TARBALL}"
171+
172+
export LOKI_HOME='/tmp/loki'
173+
export PATH="${LOKI_HOME}/bin:${PATH}"
174+
175+
source "${LOKI_HOME}/usr/local/share/loki/autotools/${{ matrix.target }}.sh"
176+
elif [[ '${{ matrix.target }}' == *'-linux-gnu'* ]]; then
177+
declare -r OBGGCC_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/obggcc/releases/latest')")"
178+
declare -r OBGGCC_TARBALL='/tmp/toolchain.tar.xz'
179+
declare -r OBGGCC_URL="https://github.com/AmanoTeam/obggcc/releases/download/${OBGGCC_TAG}/x86_64-unknown-linux-gnu.tar.xz"
180+
181+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${OBGGCC_URL}" --output "${OBGGCC_TARBALL}"
182+
tar --directory="$(dirname "${OBGGCC_TARBALL}")" --extract --file="${OBGGCC_TARBALL}"
183+
184+
export OBGGCC_HOME='/tmp/obggcc'
185+
export PATH="${OBGGCC_HOME}/bin:${PATH}"
186+
187+
source "${OBGGCC_HOME}/usr/local/share/obggcc/autotools/${{ matrix.target }}.sh"
188+
elif [[ '${{ matrix.target }}' == *'-openbsd'* ]]; then
189+
declare -r ATAR_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Atar/releases/latest')")"
190+
declare -r ATAR_TARBALL='/tmp/toolchain.tar.xz'
191+
declare -r ATAR_URL="https://github.com/AmanoTeam/Atar/releases/download/${ATAR_TAG}/x86_64-unknown-linux-gnu.tar.xz"
192+
193+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${ATAR_URL}" --output "${ATAR_TARBALL}"
194+
tar --directory="$(dirname "${ATAR_TARBALL}")" --extract --file="${ATAR_TARBALL}"
195+
196+
export ATAR_HOME='/tmp/atar'
197+
export PATH="${ATAR_HOME}/bin:${PATH}"
198+
199+
source "${ATAR_HOME}/usr/local/share/atar/autotools/${{ matrix.target }}.sh"
200+
elif [[ '${{ matrix.target }}' == *'-haiku' ]]; then
201+
declare -r SIL_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Sil/releases/latest')")"
202+
declare -r SIL_TARBALL='/tmp/toolchain.tar.xz'
203+
declare -r SIL_URL="https://github.com/AmanoTeam/Sil/releases/download/${SIL_TAG}/x86_64-unknown-linux-gnu.tar.xz"
204+
205+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${SIL_URL}" --output "${SIL_TARBALL}"
206+
tar --directory="$(dirname "${SIL_TARBALL}")" --extract --file="${SIL_TARBALL}"
207+
208+
export SIL_HOME='/tmp/sil'
209+
export PATH="${SIL_HOME}/bin:${PATH}"
210+
211+
source "${SIL_HOME}/usr/local/share/sil/autotools/${{ matrix.target }}.sh"
212+
elif [[ '${{ matrix.target }}' == *'-serenity' ]]; then
213+
declare -r SENNA_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Senna/releases/latest')")"
214+
declare -r SENNA_TARBALL='/tmp/toolchain.tar.xz'
215+
declare -r SENNA_URL="https://github.com/AmanoTeam/Senna/releases/download/${SENNA_TAG}/x86_64-unknown-linux-gnu.tar.xz"
216+
217+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${SENNA_URL}" --output "${SENNA_TARBALL}"
218+
tar --directory="$(dirname "${SENNA_TARBALL}")" --extract --file="${SENNA_TARBALL}"
219+
220+
export SENNA_HOME='/tmp/senna'
221+
export PATH="${SENNA_HOME}/bin:${PATH}"
222+
223+
source "${SENNA_HOME}/usr/local/share/senna/autotools/${{ matrix.target }}.sh"
224+
elif [[ '${{ matrix.target }}' == *'-netbsd'* ]]; then
225+
declare -r DAKINI_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Dakini/releases/latest')")"
226+
declare -r DAKINI_TARBALL='/tmp/toolchain.tar.xz'
227+
declare -r DAKINI_URL="https://github.com/AmanoTeam/Dakini/releases/download/${DAKINI_TAG}/x86_64-unknown-linux-gnu.tar.xz"
228+
229+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${DAKINI_URL}" --output "${DAKINI_TARBALL}"
230+
tar --directory="$(dirname "${DAKINI_TARBALL}")" --extract --file="${DAKINI_TARBALL}"
231+
232+
export DAKINI_HOME='/tmp/dakini'
233+
export PATH="${DAKINI_HOME}/bin:${PATH}"
234+
235+
source "${DAKINI_HOME}/usr/local/share/dakini/autotools/${{ matrix.target }}.sh"
236+
elif [[ '${{ matrix.target }}' == *'-dragonfly' ]]; then
237+
declare -r VENTI_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Venti/releases/latest')")"
238+
declare -r VENTI_TARBALL='/tmp/toolchain.tar.xz'
239+
declare -r VENTI_URL="https://github.com/AmanoTeam/Venti/releases/download/${VENTI_TAG}/x86_64-unknown-linux-gnu.tar.xz"
240+
241+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${VENTI_URL}" --output "${VENTI_TARBALL}"
242+
tar --directory="$(dirname "${VENTI_TARBALL}")" --extract --file="${VENTI_TARBALL}"
243+
244+
export VENTI_HOME='/tmp/venti'
245+
export PATH="${VENTI_HOME}/bin:${PATH}"
246+
247+
source "${VENTI_HOME}/usr/local/share/venti/autotools/${{ matrix.target }}.sh"
248+
elif [[ '${{ matrix.target }}' == *'-android'* ]]; then
249+
declare -r PINO_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Pino/releases/latest')")"
250+
declare -r PINO_TARBALL='/tmp/toolchain.tar.xz'
251+
declare -r PINO_URL="https://github.com/AmanoTeam/Pino/releases/download/${PINO_TAG}/x86_64-unknown-linux-gnu.tar.xz"
252+
253+
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${PINO_URL}" --output "${PINO_TARBALL}"
254+
tar --directory="$(dirname "${PINO_TARBALL}")" --extract --file="${PINO_TARBALL}"
255+
256+
export PINO_HOME='/tmp/pino'
257+
export PATH="${PINO_HOME}/bin:${PATH}"
258+
259+
source "${PINO_HOME}/usr/local/share/pino/autotools/${{ matrix.target }}.sh"
260+
fi
98261
99262
bash './build.sh' '${{ matrix.target }}'
263+
- name: Create logs
264+
if: always()
265+
run: |
266+
declare logs=''
267+
268+
while read file; do
269+
logs+="${file} "
270+
done <<< $(find "/tmp/"*"/build" -wholename '*/config.log')
271+
272+
tar --create --file=- ${logs} | xz --threads='0' --compress -9 > '/tmp/logs.tar.xz'
273+
- name: Upload logs
274+
if: always()
275+
uses: actions/upload-artifact@main
276+
with:
277+
name: ${{ matrix.target }}-logs
278+
if-no-files-found: error
279+
path: |
280+
/tmp/logs.tar.xz
100281
- name: Generate tarball
101282
run: |
102283
declare tarball_filename='/tmp/${{ matrix.target }}.tar.xz'

0 commit comments

Comments
 (0)