Skip to content

Commit f89b09b

Browse files
authored
fix: use CGO_ENABLED=0 for release builds (#705)
Ensure that release builds are built with cgo disabled. This is usually the case for cross-compiled builds anyway, but adding this flag makes builds consistent regardless of what platform they are being built on. In particular, without CGO_ENABLED=0, if you make the release builds on a linux/amd64 system then the linux/amd64 binary is dynamically linked against the system libc, meaning a binary built on a glibc-based system like Ubuntu will not work on a musl libc system like Alpine. This is what appears to have happened for release 2.8.1. But the same source code built on a different system (e.g. darwin/arm64) would cross-compile the linux/amd64 binary with cgo disabled, making a static binary that works on both glibc and musl systems. This is what appears to have happened for release 2.8.2. Setting CGO_ENABLED=0 in the Makefile will make the behaviour consistent for future releases, producing static binaries for the linux builds in all cases, whatever the build platform.
1 parent 9f725b2 commit f89b09b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Diff for: Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ release: clean deps ## Generate releases for unix systems
1919
do \
2020
echo "Building $$os-$$arch"; \
2121
mkdir -p build/webhook-$$os-$$arch/; \
22-
GOOS=$$os GOARCH=$$arch go build -o build/webhook-$$os-$$arch/webhook; \
22+
CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch go build -o build/webhook-$$os-$$arch/webhook; \
2323
tar cz -C build -f build/webhook-$$os-$$arch.tar.gz webhook-$$os-$$arch; \
2424
done \
2525
done

0 commit comments

Comments
 (0)