Skip to content

Please enable the arm64e ABI at boot on macOS arm64 runners #9461

@rbalint

Description

@rbalint

Description

On Apple Silicon runners the default OS configuration prevents preloading shared libraries to binaries build with the arm64e ABI even when SIP is disabled.
This prevents testing software on GitHub's runners relying on being able to preload shared libraries. In our case it prevents running the tests of Firebuild on the macos-14 runners, while the tests are passing on the macos-12 runners for quite some time.

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 11
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • Windows Server 2019
  • Windows Server 2022

Image version and build link

Image: macos-14-arm64
Version: 20240116.1

https://github.com/firebuild/firebuild/actions/runs/8178792788/job/22363502389
(The error message from firebuild will be near the end of the test logs.)

Is it regression?

no

Expected behavior

The system allows preloading shared libraries to arm64e binaries and Firebuild's test are passing:
https://github.com/firebuild/firebuild/actions/runs/8178792788/job/22363500679 :

...
1: ok 14 closedir() inside an rm -r
1: ok 15 file operations
1: ok 16 randomness handling
1: ok 17 waiting for a child
1: ok 18 pthreads interception
1: ok 19 err()
...

Actual behavior

https://github.com/firebuild/firebuild/actions/runs/8178792788/job/22363502389

...
 1: not ok 16 randomness handling
1: # (from function `assert_streq' in file test_helper.bash, line 18,
1: #  in test file integration.bats, line 195)
1: #   `assert_streq "$result" ""' failed
1: # assert_streq: [ "FIREBUILD: The system is not configured to use the arm64e_preview_abi, which is needed for intercepting arm64e binaries.
1: # FIREBUILD: Visit https://firebuild.com/setup-macos for guidelines for setting up your system." = "" ]
1: not ok 17 waiting for a child
...

Repro steps

Fork https://github.com/rbalint/firebuild

Run the GitHub CI Action my creating a PR to merge the https://github.com/rbalint/firebuild/tree/ci-macos-matrix branch to master.
The macos-14 job will show the problem.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions