Skip to content

Build fails on macOS Tahoe #11

@nicolas-goudry

Description

@nicolas-goudry

Issue

Building on an Apple M4 MacBook Pro running macOS Tahoe 26.3.1 fails with the following error:

  AS      src/core/shim.S
  OBJCOPY build/shim.bin
  GEN     build/shim_blob.h
  GEN     build/dispatch.h
  CC      src/main.c
  CC      src/core/guest.c
  CC      src/core/elf.c
  CC      src/core/stack.c
  CC      src/core/vdso.c
  CC      src/core/bootstrap.c
  CC      src/runtime/thread.c
  CC      src/runtime/futex.c
  CC      src/runtime/forkipc.c
  CC      src/runtime/fork-state.c
  CC      src/runtime/procemu.c
  CC      src/runtime/proctitle.c
  CC      src/syscall/syscall.c
src/syscall/syscall.c:865:55: error: use of undeclared identifier 'HV_SYS_REG_ACTLR_EL1'; did you mean 'HV_SYS_REG_SCTLR_EL1'?
  865 |             hv_vcpu_get_sys_reg(current_thread->vcpu, HV_SYS_REG_ACTLR_EL1,
      |                                                       ^~~~~~~~~~~~~~~~~~~~
      |                                                       HV_SYS_REG_SCTLR_EL1
/nix/store/rcqgjj8hphkhqark1ibiwfaa7yrzniz3-apple-sdk-14.4/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:271:5: note: 'HV_SYS_REG_SCTLR_EL1' declared here
  271 |     HV_SYS_REG_SCTLR_EL1 = 0xc080,
      |     ^
1 error generated.
make: *** [mk/common.mk:31: build/syscall/syscall.o] Error 1

Solution (is it though?)

If I patch the code and set HV_SYS_REG_SCTLR_EL1 instead, the build works but then runtime fails:

00:35:53 DEBUG src/core/bootstrap.c:219: ELF entry=0x92400, 3 segments, load range [0x10000, 0x38b2780), machine=aarch64
00:35:53 DEBUG src/core/bootstrap.c:228: IPA size: 40 bits (1024 GiB primary)
00:35:53 DEBUG src/core/bootstrap.c:257: shim loaded at offset 0x100000 (5656 bytes)
00:35:53 DEBUG src/core/bootstrap.c:329: TTBR0=0x10000, IPA base=0x0
00:35:53 DEBUG src/core/bootstrap.c:71: L0[0]=0x11003
00:35:53 DEBUG src/core/bootstrap.c:78: L1[0]=0x12003
00:35:53 DEBUG src/core/bootstrap.c:85: L2[0]=0x14003
00:35:53 DEBUG src/core/bootstrap.c:85: L2[1]=0x15003
00:35:53 DEBUG src/core/bootstrap.c:85: L2[2]=0x4007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[3]=0x6007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[4]=0x8007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[5]=0xa007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[6]=0xc007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[7]=0xe007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[8]=0x10007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[9]=0x12007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[10]=0x14007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[11]=0x16007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[12]=0x16003
00:35:53 DEBUG src/core/bootstrap.c:85: L2[13]=0x60000001a007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[14]=0x60000001c007e5
00:35:53 DEBUG src/core/bootstrap.c:85: L2[15]=0x60000001e007e5
00:35:53 DEBUG src/core/bootstrap.c:370: SP=0x7ffe5b0, entry=0x92400
00:35:53 DEBUG src/core/bootstrap.c:410: SCTLR_EL1 default=0x0
00:35:53 DEBUG src/core/bootstrap.c:428: vCPU configured: PC=0x100000 SCTLR=0x34d0d984 VBAR=0x100800 TTBR0=0x10000 TCR=0x25b5903510
00:35:53 DEBUG src/core/bootstrap.c:431: ELR_EL1=0x92400 SP_EL0=0x7ffe5b0 SP_EL1=0x400000
00:35:53 DEBUG src/core/bootstrap.c:435: main thread registered with SP_EL1=0x400000
00:35:53 DEBUG src/syscall/proc.c:1048: elfuse: [0] vcpu_run PC=0x100000
00:35:53 DEBUG src/syscall/proc.c:1105: elfuse: HVC #2
00:35:53 ERROR src/syscall/proc.c:1699: elfuse: guest exception vec=0x100 ESR=0x2000000 FAR=0x0 ELR=0x100000 SPSR=0x3c5
00:35:53 ERROR src/syscall/proc.c:1705: elfuse:   SP_EL0=0x7ffe5b0
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X4 =0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X6 =0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X7 =0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X8 =0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X9 =0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X10=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X11=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X12=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X13=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X14=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X15=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X16=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X17=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X18=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X19=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X20=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X21=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X22=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X23=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X24=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X25=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X26=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X27=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X28=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X29=0x0000000000000000
00:35:53 ERROR src/syscall/proc.c:1713: elfuse:   X30=0x0000000000000000

╔══════════════════════════════════════════════════════════╗
║                   elfuse crash report                    ║
╚══════════════════════════════════════════════════════════╝

## Environment
- elfuse version: a49ea1d
- macOS: 26.3.1 (Darwin 25.3.0)
- hardware: Apple M4 Pro

## Crash
- type: BAD_EXCEPTION
- detail: vec=0x100 ESR=0x2000000 FAR=0x0

## Binary
- path: /Users/ngoudry/Downloads/linux-arm64/helm
- cmdline: /Users/ngoudry/Downloads/linux-arm64/helm

## Memory layout
guest_size  = 0x10000000000 (1048576 MB, 40-bit IPA)
brk         = 0x38b3000 .. 0x38b3000
mmap RW     = 0x200000000 .. 0x200200000 (next 0x200000000)
mmap RX     = 0x10000000 .. 0x10200000 (next 0x10000000)
interp_base = 0xff00000000  mmap_limit = 0xfe00000000

Runtime crash details

Command line used:

build/elfuse ~/Downloads/linux-arm64/helm

Statically linked binary:

/Users/ngoudry/Downloads/linux-arm64/helm: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, BuildID[sha1]=e6a067b04f6efc6d65ff97fd2a616696cc1f0c60, stripped

Reproducible: always

Guest binary: Helm 4.1.4 for Linux aarch64

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions