Use `select` to disable building static binaries if `--cpu=darwin`.

This change allows kubectl to be built on MacOS machines using
`bazel build //cmd/kubectl`.

Mac OS X doesn't support static binaries because it does not have a
stable syscall API. Userspace binaries are expected to dynamically
link against libcrt instead.

https://developer.apple.com/library/content/qa/qa1118/_index.html
pull/6/head
John Millikin 2017-08-14 09:50:42 -07:00
parent bc1a58ae3a
commit 046a6ce6bb
No known key found for this signature in database
GPG Key ID: 1F7686B8DA217791
1 changed files with 11 additions and 6 deletions

View File

@ -7,12 +7,17 @@ load("//pkg/version:def.bzl", "version_x_defs")
go_binary(
name = "kubectl",
gc_linkopts = [
"-linkmode",
"external",
"-extldflags",
"-static",
],
gc_linkopts = select({
# Mac OS X doesn't support static binaries:
# https://developer.apple.com/library/content/qa/qa1118/_index.html
"@io_bazel_rules_go//go/platform:darwin_amd64": [],
"//conditions:default": [
"-linkmode",
"external",
"-extldflags",
"-static",
],
}),
library = ":go_default_library",
visibility = [
"//build/visible_to:COMMON_release",