Skip to content

bumping golang version to v1.25.0 breaks hyperkit driver build with xcgo #21940

@medyagh

Description

@medyagh

when I tried to bump the go version from 1.24 to 1.25 minikube's go mod (this PR #21934)

the hyperkit driver build. failed (which uses a docker image xcgo)

here is the failed build. log


/go/pkg/mod/golang.org/[email protected]/pkg/tool/linux_amd64/link: running o64-clang failed: exit status 1

/osxcross/target/bin/o64-clang -arch x86_64 -m64 -Wl,-headerpad,1144 -o $WORK/b001/exe/a.out -Qunused-arguments /tmp/go-link-242712742/go.o /tmp/go-link-242712742/000000.o /tmp/go-link-242712742/000001.o /tmp/go-link-242712742/000002.o /tmp/go-link-242712742/000003.o /tmp/go-link-242712742/000004.o /tmp/go-link-242712742/000005.o /tmp/go-link-242712742/000006.o /tmp/go-link-242712742/000007.o /tmp/go-link-242712742/000008.o /tmp/go-link-242712742/000009.o /tmp/go-link-242712742/000010.o /tmp/go-link-242712742/000011.o -lresolv -O2 -g -framework vmnet -O2 -g -lpthread -framework CoreFoundation -framework Security

Undefined symbols for architecture x86_64:

  "_SecTrustCopyCertificateChain", referenced from:

      _crypto/x509/internal/macos.x509_SecTrustCopyCertificateChain_trampoline.abi0 in go.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)



make: *** [Makefile:661: out/docker-machine-driver-hyperkit] Error 1

make: *** [Makefile:655: out/docker-machine-driver-hyperkit] Error 2



why hyperkit driver build is failing only on go 1.25.0?

Works for go mod 1.24 (on master branch)


$ MINIKUBE_BUILD_IN_DOCKER=y make drivers

docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 \

--user 531729:89939 -w /app \

-v /usr/local/google/home/medya/workspace/minikube:/app:Z -v /usr/local/google/home/medya/go:/go:Z --init --entrypoint "" \

quay.io/nirsof/xcgo:jammy-v2 /bin/bash -c 'CC=o64-clang CXX=o64-clang++ /usr/bin/make out/docker-machine-driver-hyperkit'

Unable to find image 'quay.io/nirsof/xcgo:jammy-v2' locally

jammy-v2: Pulling from nirsof/xcgo

Digest: sha256:a0655d9b3aea65de70e5391abe468634da3c7d32a234902661eff6fce7bbd669

Status: Downloaded newer image for quay.io/nirsof/xcgo:jammy-v2

GOOS=darwin CGO_ENABLED=1 go build \

-ldflags="-X k8s.io/minikube/pkg/drivers/hyperkit.version=v1.37.0 -X k8s.io/minikube/pkg/drivers/hyperkit.gitCommitID="bac7021992e8850fa62e5b8cf1e457e301853aed""   \

-o out/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit


Fails for go mod to 1.25

$ gh pr checkout 21934

remote: Enumerating objects: 99, done.

remote: Counting objects: 100% (96/96), done.

remote: Compressing objects: 100% (4/4), done.

remote: Total 99 (delta 92), reused 92 (delta 92), pack-reused 3 (from 2)

Unpacking objects: 100% (99/99), 17.34 KiB | 403.00 KiB/s, done.

From https://github.com/kubernetes/minikube

 * [new ref]             refs/pull/21934/head -> bump_golang_manually

Switched to branch 'bump_golang_manually'

11:46:26 medya/workspace/minikube

bump_golang_manually ✓

$ MINIKUBE_BUILD_IN_DOCKER=y make drivers

go: downloading go1.25.3 (linux/amd64)

make: Nothing to be done for 'drivers'.

11:46:49 medya/workspace/minikube

bump_golang_manually ✓

$ make clean

rm -rf /usr/local/google/home/medya/workspace/minikube/out

rm -f pkg/minikube/assets/assets.go

rm -f pkg/minikube/translate/translations.go

rm -rf ./vendor

rm -rf /tmp/tmp.*.minikube_*

rm -rf test/integration/licenses

11:46:58 medya/workspace/minikube

bump_golang_manually ✓

$ MINIKUBE_BUILD_IN_DOCKER=y make drivers

docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 \

--user 531729:89939 -w /app \

-v /usr/local/google/home/medya/workspace/minikube:/app:Z -v /usr/local/google/home/medya/go:/go:Z --init --entrypoint "" \

quay.io/nirsof/xcgo:jammy-v2 /bin/bash -c 'CC=o64-clang CXX=o64-clang++ /usr/bin/make out/docker-machine-driver-hyperkit'

go: downloading go1.25.0 (linux/amd64)

GOOS=darwin CGO_ENABLED=1 go build \

-ldflags="-X k8s.io/minikube/pkg/drivers/hyperkit.version=v1.37.0 -X k8s.io/minikube/pkg/drivers/hyperkit.gitCommitID="060ece2009c3489c8c538bb03208cdca89ee8b50""   \

-o out/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit

# k8s.io/minikube/cmd/drivers/hyperkit

/go/pkg/mod/golang.org/[email protected]/pkg/tool/linux_amd64/link: running o64-clang failed: exit status 1

/osxcross/target/bin/o64-clang -arch x86_64 -m64 -Wl,-headerpad,1144 -o $WORK/b001/exe/a.out -Qunused-arguments /tmp/go-link-242712742/go.o /tmp/go-link-242712742/000000.o /tmp/go-link-242712742/000001.o /tmp/go-link-242712742/000002.o /tmp/go-link-242712742/000003.o /tmp/go-link-242712742/000004.o /tmp/go-link-242712742/000005.o /tmp/go-link-242712742/000006.o /tmp/go-link-242712742/000007.o /tmp/go-link-242712742/000008.o /tmp/go-link-242712742/000009.o /tmp/go-link-242712742/000010.o /tmp/go-link-242712742/000011.o -lresolv -O2 -g -framework vmnet -O2 -g -lpthread -framework CoreFoundation -framework Security

Undefined symbols for architecture x86_64:

  "_SecTrustCopyCertificateChain", referenced from:

      _crypto/x509/internal/macos.x509_SecTrustCopyCertificateChain_trampoline.abi0 in go.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)



make: *** [Makefile:661: out/docker-machine-driver-hyperkit] Error 1

make: *** [Makefile:655: out/docker-machine-driver-hyperkit] Error 2

Metadata

Metadata

Assignees

Labels

co/hyperkitHyperkit related issues

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions