I’m trying to run the arm64 worker job (ARM, unit tests, no functional tests) on my M4 mac, because that should be lot faster than emulating it in Qemu on my x86_64 machine.
Unfortunately so far it fails:
 0[10:34:36.739] Test project /ci_container_base/ci/scratch/build-arm-linux-gnueabihf
 1[10:34:36.742]         Start   2: util_rpcauth_test
 2[10:34:36.744]         Start   4: univalue_object_test
 3[10:34:36.747]         Start   6: secp256k1_tests
 4[10:34:36.751]         Start   8: test_bitcoin-qt
 5[10:34:36.754]         Start  10: addrman_tests
 6[10:34:36.756]   2/141 Test   [#4](/bitcoin-bitcoin/4/): univalue_object_test .................***Failed    0.01 sec
 7[10:34:36.756] /ci_container_base/ci/scratch/build-arm-linux-gnueabihf/src/univalue/object: 1: Syntax error: word unexpected (expecting ")")
 8[10:34:36.756] 
 9[10:34:36.769]   9/141 Test   [#2](/bitcoin-bitcoin/2/): util_rpcauth_test ....................   Passed    0.03 sec
10[10:34:36.888]  10/141 Test   [#1](/bitcoin-bitcoin/1/): util_test_runner .....................***Failed    0.15 sec
11[10:34:36.888] 2024-11-22 10:34:36,767 - ERROR - OSError, Failed to execute /ci_container_base/ci/scratch/build-arm-linux-gnueabihf/src/bitcoin-util 
https://cirrus-ci.com/task/4863394807808000
This is running https://github.com/Sjors/bitcoin/pull/67 which is based on master @ 2638fdb4f934be96b7c798dbac38ea5ab8a6374a.
My current setup:
- MacBook Pro with M4 Pro chip
- UTM to run a VM: https://mac.getutm.app
- Ubuntu Server 24.0.1 for ARM: https://ubuntu.com/download/server/arm
- UTM machine settings:
- ARM64 (aarch64)
- System: QEMU 7.2 ARM virt-8.2
- 14 GB RAM
- 10 CPU cores
- haven’t touched other default settings
 
For .cirrus.yaml I use:
0name: MBP24-I
1token: ...
2
3labels:
4  type: arm64
I start the worker with:
0RESTART_CI_DOCKER_BEFORE_RUN=1 cirrus worker run -f ~/.cirrus.yaml
I also tried running the cirrus worker outside a VM, with cirrus installed via Homebrew. For setup that I used Podman Desktop with the Docker extension.
It fails with the same error. Here’s the log for that:
https://cirrus-ci.com/task/4838331626815488
For comparison here’s the same job (still) running on x86_64 with qemu: