Merge pull request #48573 from jmillikin-stripe/build-kubectl-on-darwin

Automatic merge from submit-queue (batch tested with PRs 51047, 48573, 50764, 51092, 50578)

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

```release-note
None
```
This commit is contained in:
Kubernetes Submit Queue 2017-08-23 17:56:02 -07:00 committed by GitHub
commit 4385382364

View File

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