Skip to content

Commit 16844bb

Browse files
agattidpgeorge
authored andcommitted
tools/ci.sh: Update Unix/Arm target to Ubuntu 24.04 LTS.
This commit updates the Unix/Arm target's environment to use the latest available LTS version of Ubuntu Linux (24.04). Since the new OS updated some key components used in the CI build process, a few modifications have been made to the setup and build procedure. Newer QEMU's sysroot location changed and the "static" variant of the QEMU emulators has to be used to make binfmt work, and updated autotools versions split some macros into an optional package that has to be manually installed. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
1 parent 6dea53c commit 16844bb

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

.github/workflows/ports_unix.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,10 +266,14 @@ jobs:
266266
run: tests/run-tests.py --print-failures
267267

268268
qemu_arm:
269-
# ubuntu-22.04 is needed for older libffi.
270-
runs-on: ubuntu-22.04
269+
runs-on: ubuntu-latest
271270
steps:
272271
- uses: actions/checkout@v6
272+
- uses: actions/setup-python@v6
273+
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
274+
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
275+
with:
276+
python-version: '3.11'
273277
- name: Install packages
274278
run: tools/ci.sh unix_qemu_arm_setup
275279
- name: Build

tools/ci.sh

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -936,11 +936,11 @@ function ci_unix_qemu_mips_run_tests {
936936

937937
function ci_unix_qemu_arm_setup {
938938
sudo apt-get update
939-
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
940-
sudo apt-get install qemu-user
941-
qemu-arm --version
942-
sudo mkdir /etc/qemu-binfmt
943-
sudo ln -s /usr/arm-linux-gnueabi/ /etc/qemu-binfmt/arm
939+
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libltdl-dev
940+
sudo apt-get install qemu-user-static
941+
qemu-arm-static --version
942+
sudo mkdir -p /usr/gnemul
943+
sudo ln -s /usr/arm-linux-gnueabi /usr/gnemul/qemu-arm
944944
}
945945

946946
function ci_unix_qemu_arm_build {
@@ -950,12 +950,11 @@ function ci_unix_qemu_arm_build {
950950

951951
function ci_unix_qemu_arm_run_tests {
952952
# Issues with ARM tests:
953-
# - (i)listdir does not work, it always returns the empty list (it's an issue with the underlying C call)
954953
# - thread/stress_aes.py takes around 70 seconds
955954
# - thread/stress_recurse.py is flaky
956955
# - thread/thread_gc1.py is flaky
957956
file ./ports/unix/build-coverage/micropython
958-
(cd tests && MICROPY_MICROPYTHON=../ports/unix/build-coverage/micropython MICROPY_TEST_TIMEOUT=90 ./run-tests.py --exclude 'vfs_posix.*\.py|thread/stress_recurse.py|thread/thread_gc1.py')
957+
(cd tests && MICROPY_MICROPYTHON=../ports/unix/build-coverage/micropython MICROPY_TEST_TIMEOUT=90 ./run-tests.py --exclude 'thread/stress_recurse.py|thread/thread_gc1.py')
959958
}
960959

961960
function ci_unix_qemu_riscv64_setup {

0 commit comments

Comments
 (0)