Skip to content

Commit e95d783

Browse files
committed
esp/ci: Adds Linux ARM/ARM64 universal toolchain builds
1 parent 63b6e44 commit e95d783

File tree

2 files changed

+59
-13
lines changed

2 files changed

+59
-13
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828

2929
# Nested build directory
3030
/build*
31+
/*/build-*
32+
/_build
33+
/_dist
3134

3235
#==============================================================================#
3336
# Explicit files to ignore (only matches one).

.gitlab-ci.yml

Lines changed: 56 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@ variables:
2323
LLVM_GCC_TESTSUITE_REF: "release_universal_clang_toolchain"
2424
# TODO: update var below to tags names after related branches are merged in those repos
2525
# XTENSA_CLANG_TOOLCHAIN_REF: "release_universal_clang_toolchain"
26-
XTENSA_CLANG_TOOLCHAIN_REF: "build_macos_arm64"
26+
XTENSA_CLANG_TOOLCHAIN_REF: "universal_toolchain/build_linux_arm64"
2727

28-
PLATFORM_NAME_LINUX_ARM64: "linux-arm64"
28+
CROSS_ARM_IMAGE: $CI_DOCKER_REGISTRY/llvm-build-cross-arm:1
2929
PLATFORM_NAME_LINUX: "linux-amd64"
30+
PLATFORM_NAME_LINUX_ARMHF: "linux-armhf"
31+
PLATFORM_NAME_LINUX_ARM64: "linux-arm64"
3032
PLATFORM_NAME_WIN: "win64"
3133
PLATFORM_NAME_MACOS: "macos"
3234
PLATFORM_NAME_MACOS_ARM64: "macos-arm64"
@@ -171,7 +173,7 @@ before_script:
171173
# Do not run unit tests for cross-builds.
172174
# Run as non-root user because permission tests fail when run by root.
173175
- if [ "${CONF_HOST}" == "${BUILD_HOST}" ]; then
174-
export LLVM_BUILD_PATH=${LLVM_PROJECT_PATH}/llvm/build-Release-${CONF_HOST};
176+
export LLVM_BUILD_PATH=${LLVM_PROJECT_PATH}/llvm/build-${CONF_HOST}-Release;
175177
echo "Run unit tests for native build in ${LLVM_BUILD_PATH}";
176178
useradd -m test_runner;
177179
chown -R test_runner ${LLVM_BUILD_PATH};
@@ -184,16 +186,34 @@ before_script:
184186
- *package_toolchain
185187
- popd
186188

187-
build_x86_64-linux-gnu:
189+
.build_linux-gnu_template:
188190
extends: .build_template
189191
variables:
190-
CONF_HOST: "x86_64-linux-gnu"
191-
PLATFORM_NAME: "${PLATFORM_NAME_LINUX}"
192192
ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"
193193
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_LINUX}"
194194
ARCHIVE_EXT: "${ARCHIVE_EXT_LINUX}"
195195
BUILD_TOOLCHAIN_CMD: "./build-toolchain.sh"
196196

197+
build_x86_64-linux-gnu:
198+
extends: .build_linux-gnu_template
199+
variables:
200+
CONF_HOST: "x86_64-linux-gnu"
201+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX}"
202+
203+
build_arm-linux-gnueabihf:
204+
extends: .build_linux-gnu_template
205+
image: ${CROSS_ARM_IMAGE}
206+
variables:
207+
CONF_HOST: "arm-linux-gnueabihf"
208+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX_ARMHF}"
209+
210+
build_aarch64-linux-gnu:
211+
extends: .build_linux-gnu_template
212+
image: ${CROSS_ARM_IMAGE}
213+
variables:
214+
CONF_HOST: "aarch64-linux-gnu"
215+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX_ARM64}"
216+
197217
build_x86_64-w64-mingw32:
198218
extends: .build_template
199219
needs:
@@ -228,20 +248,19 @@ build_x86_64-w64-mingw32:
228248
ARCHIVE_TOOL: "${ARCHIVE_TOOL_MACOS}"
229249
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_MACOS}"
230250
ARCHIVE_EXT: "${ARCHIVE_EXT_MACOS}"
251+
BUILD_TOOLCHAIN_CMD: "./build-toolchain.sh"
231252

232253
build_x86_64-apple-darwin:
233254
extends: .build_apple-darwin_template
234255
variables:
235256
CONF_HOST: "x86_64-apple-darwin21.1"
236257
PLATFORM_NAME: "${PLATFORM_NAME_MACOS}"
237-
BUILD_TOOLCHAIN_CMD: "./build-toolchain-macos.sh --host-arch=x86_64"
238258

239259
build_aarch64-apple-darwin:
240260
extends: .build_apple-darwin_template
241261
variables:
242262
CONF_HOST: "aarch64-apple-darwin21.1"
243263
PLATFORM_NAME: "${PLATFORM_NAME_MACOS_ARM64}"
244-
BUILD_TOOLCHAIN_CMD: "./build-toolchain-macos.sh --host-arch=aarch64"
245264

246265
build_newlib:
247266
stage: build
@@ -318,17 +337,41 @@ build_newlib:
318337
- *package_libs
319338
- popd
320339

321-
pack_x86_64-linux-gnu:
340+
.pack_linux-gnu_template:
322341
extends: .pack_template
342+
variables:
343+
ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"
344+
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_LINUX}"
345+
ARCHIVE_EXT: "${ARCHIVE_EXT_LINUX}"
346+
347+
pack_x86_64-linux-gnu:
348+
extends: .pack_linux-gnu_template
323349
needs:
324350
- job: build_x86_64-linux-gnu
325351
- job: build_newlib
326352
variables:
327353
CONF_HOST: "x86_64-linux-gnu"
328354
PLATFORM_NAME: "${PLATFORM_NAME_LINUX}"
329-
ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"
330-
UNARCHIVE_TOOL: "${UNARCHIVE_TOOL_LINUX}"
331-
ARCHIVE_EXT: "${ARCHIVE_EXT_LINUX}"
355+
356+
pack_arm-linux-gnueabihf:
357+
extends: .pack_linux-gnu_template
358+
image: ${CROSS_ARM_IMAGE}
359+
needs:
360+
- job: build_arm-linux-gnueabihf
361+
- job: build_newlib
362+
variables:
363+
CONF_HOST: "arm-linux-gnueabihf"
364+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX_ARMHF}"
365+
366+
pack_aarch64-linux-gnu:
367+
extends: .pack_linux-gnu_template
368+
image: ${CROSS_ARM_IMAGE}
369+
needs:
370+
- job: build_aarch64-linux-gnu
371+
- job: build_newlib
372+
variables:
373+
CONF_HOST: "aarch64-linux-gnu"
374+
PLATFORM_NAME: "${PLATFORM_NAME_LINUX_ARM64}"
332375

333376
pack_x86_64-w64-mingw32:
334377
extends: .pack_template
@@ -459,7 +502,7 @@ linux_amd64_build:
459502

460503
linux_arm64_build:
461504
extends: .build_template_old
462-
image: $CI_DOCKER_REGISTRY/llvm-build-cross-arm:1
505+
image: ${CROSS_ARM_IMAGE}
463506
variables:
464507
PLATFORM_NAME: "${PLATFORM_NAME_LINUX_ARM64}"
465508
ARCHIVE_TOOL: "${ARCHIVE_TOOL_LINUX}"

0 commit comments

Comments
 (0)