#!/bin/sh # bin/cgo/zcc — CGO CC. Zig, not gcc. # Go invokes CC with many args; a wrapper avoids spaces in $CC. set -eu ROOT="$(CDPATH= cd -- "$(dirname "$0")/../.." && pwd)" case "$(uname -m)" in x86_64|amd64) TARGET=x86_64-linux-gnu ;; aarch64|arm64) TARGET=aarch64-linux-gnu ;; *) echo "zcc: unsupported arch $(uname -m)" >&2 exit 2 ;; esac if [ -n "${ZIG:-}" ] && [ -x "$ZIG" ]; then : elif [ -x "$ROOT/var/zig/zig" ]; then ZIG="$ROOT/var/zig/zig" elif command -v zig >/dev/null 2>&1; then ZIG="$(command -v zig)" else echo "zcc: zig missing; run bin/cgo/zig first" >&2 exit 127 fi exec "$ZIG" cc -target "$TARGET" "$@"