diff --git a/docs/platform-virtualization-framework.md b/docs/platform-virtualization-framework.md index 69cc25e9f..8b743b8fb 100644 --- a/docs/platform-virtualization-framework.md +++ b/docs/platform-virtualization-framework.md @@ -9,6 +9,7 @@ with updated versions of both. Alternatively, you can install Virtualization.Framework and VPNKit standalone and use it without Docker for Mac. +Virtualization.Framework is enabled on macOS only when built with CGO enabled. ## Boot diff --git a/src/cmd/linuxkit/Makefile b/src/cmd/linuxkit/Makefile index 401fb3042..53e8fbd14 100644 --- a/src/cmd/linuxkit/Makefile +++ b/src/cmd/linuxkit/Makefile @@ -61,6 +61,7 @@ ifeq ($(STATIC), 1) endif # darwin needs CGO to build for virtualization framework +# without CGO attempt to use virtualization framework will ends with error ifeq ($(GOOS), darwin) CGO_ENABLED=1 endif diff --git a/src/cmd/linuxkit/run_virtualizationframework_darwin_cgo_disabled.go b/src/cmd/linuxkit/run_virtualizationframework_darwin_cgo_disabled.go new file mode 100644 index 000000000..114438f91 --- /dev/null +++ b/src/cmd/linuxkit/run_virtualizationframework_darwin_cgo_disabled.go @@ -0,0 +1,14 @@ +//go:build darwin && !cgo +// +build darwin,!cgo + +package main + +import ( + log "github.com/sirupsen/logrus" +) + +// Process the run arguments and execute run +func runVirtualizationFramework(args []string) { + log.Fatal("This build of linuxkit was compiled without virtualization framework capabilities. " + + "To perform 'linuxkit run' on macOS, please use a version of linuxkit compiled with virtualization framework.") +} diff --git a/src/cmd/linuxkit/run_virtualizationframework_darwin.go b/src/cmd/linuxkit/run_virtualizationframework_darwin_cgo_enabled.go similarity index 99% rename from src/cmd/linuxkit/run_virtualizationframework_darwin.go rename to src/cmd/linuxkit/run_virtualizationframework_darwin_cgo_enabled.go index 79a3eb060..ed5d5f1b0 100644 --- a/src/cmd/linuxkit/run_virtualizationframework_darwin.go +++ b/src/cmd/linuxkit/run_virtualizationframework_darwin_cgo_enabled.go @@ -1,5 +1,5 @@ -//go:build darwin -// +build darwin +//go:build darwin && cgo +// +build darwin,cgo package main