A fresh built xhyve will fail to run on macOS Catalina with "Killed: 9" message.
From checking the logs, it is a code signing issue... I've created a brand new Apple Developer Code Signing Identity from within Xcode and selected this specific identity with _CODE_SIGNIDENTITY environment variable. The outcome was the same as before. Disabling code signing on the other hand, produces a binary which can run.
Environment
macOS Catalina 10.15.5
System Preferences / Security & Privacy / General / Allow apps downloads from: App store and identified developers
$ xcodebuild -version
Xcode 11.5
Build version 11E608c
As per project README.md, build process consist of:
git clone https://github.com/machyve/xhyve.git
cd xhyve
xcodebuilld
Building with code signing disabled results in a usable binary:
$ xcodebuild CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
....
$ build/Release/xhyve -h
Usage: xhyve [-behuwxMACHPWY] [-c vcpus] [-F <pidfile>] [-g <gdb port>] [-l <lpc>]
[-m mem] [-p vcpu:hostcpu] [-s <pci>] [-U uuid] -f <fw>
-A: create ACPI tables
-c: # cpus (default 1)
-C: include guest memory in core file
-e: exit on unhandled I/O access
-f: firmware
-F: pidfile
-g: gdb port
-h: help
-H: vmexit from the guest on hlt
-l: LPC device configuration. Ex: -l com1,stdio -l com2,autopty -l com2,/dev/myownpty
-m: memory size in MB, may be suffixed with one of K, M, G or T
-M: print MAC address and exit if using vmnet
-p: pin 'vcpu' to 'hostcpu'
-P: vmexit from the guest on pause
-s: <slot,driver,configinfo> PCI slot config
-u: RTC keeps UTC time
-U: uuid
-v: show build version
-w: ignore unimplemented MSRs
-W: force virtio to use single-vector MSI
-x: local apic is in x2APIC mode
-Y: disable MPtable generation
Error message reported in System Logs:
Process: xhyve [49473]
Path: /Users/USER/*/xhyve
Identifier: xhyve
Version: ???
Code Type: X86-64 (Native)
Parent Process: bash [19619]
Responsible: Terminal [75407]
User ID: 501
Date/Time: 2020-07-05 19:32:27.522 -0700
OS Version: Mac OS X 10.15.5 (19F101)
Report Version: 12
Bridge OS Version: 4.5 (17P5300)
Anonymous UUID: 96E512B4-5E65-7C5E-59C6-CD6E9D3BEC2C
Sleep/Wake UUID: 0AF60293-4303-4B82-81DE-4203A11053A4
Time Awake Since Boot: 2100000 seconds
Time Since Wake: 590000 seconds
System Integrity Protection: enabled
Crashed Thread: Unknown
Exception Type: EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace CODESIGNING, Code 0x1
kernel messages:
Backtrace not available
Unknown thread crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x0000000000000000 rsp: 0x00007ffee3eabaa8
r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x0000000000000000
r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000
rip: 0x0000000110d3f000 rfl: 0x0000000000000200 cr2: 0x0000000000000000
Logical CPU: 0
Error Code: 0x00000000
Trap Number: 0
Binary images description not available
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 66508486
thread_create: 0
thread_set_state: 0
A fresh built xhyve will fail to run on macOS Catalina with "Killed: 9" message.
From checking the logs, it is a code signing issue... I've created a brand new Apple Developer Code Signing Identity from within Xcode and selected this specific identity with _CODE_SIGNIDENTITY environment variable. The outcome was the same as before. Disabling code signing on the other hand, produces a binary which can run.
Environment
macOS Catalina 10.15.5 System Preferences / Security & Privacy / General / Allow apps downloads from: App store and identified developers
As per project README.md, build process consist of:
And once built, xhyve can be executed as follows:
Building with code signing disabled results in a usable binary:
Error message reported in System Logs: