Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS mockgen terminated by signal SIGKILL when built with swiftlang-6.0.0.3.300 clang-1600.0.20.10 toolchain #185

Open
samdeane opened this issue Jun 19, 2024 · 5 comments

Comments

@samdeane
Copy link

Actual behavior

bash-3.2$ go install go.uber.org/mock/mockgen@v0.3.0
bash-3.2$ mockgen --version
Killed: 9

Expected behavior

bash-3.2$ go install go.uber.org/mock/mockgen@v0.3.0
bash-3.2$ mockgen --version
v0.3.0

To Reproduce

Installing mockgen on macOS using go install go.uber.org/mock/mockgen@v0.3.0, with the swift/clang toolchain set to the one that ships with Xcode 16.0.0-Beta (swift-driver version: 1.109.2 Apple Swift version 6.0 (swiftlang-6.0.0.3.300 clang-1600.0.20.10)) results in an executable that is killed when executed.

Switching back to the Xcode 15.4 toolchain (swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)), and re-installing mockgen, is sufficient to fix it.

Additional Information

go version go1.21.4 darwin/arm64

Triage Notes for the Maintainers

@samdeane
Copy link
Author

I realise that this is likely a toolchain issue outside of your control. The main purpose of this report is as a breadcrumb for anyone else seeing the same behaviour!

@jpotterm
Copy link

jpotterm commented Oct 2, 2024

I ran into this error due to an invalid code signature. You can check if the signature is valid with codesign -v bin/mockgen (no output means valid). If it is invalid, a workaround is to re-sign it with codesign -f -s - bin/mockgen.

@ylhan
Copy link

ylhan commented Oct 9, 2024

I ran into this error due to an invalid code signature. You can check if the signature is valid with codesign -v bin/mockgen (no output means valid). If it is invalid, a workaround is to re-sign it with codesign -f -s - bin/mockgen.

This fixed it for me but why is the code signature invalid? I re-install mockgen following the official instructions in the README.

@jpotterm
Copy link

Another workaround that works for me is to set CGO_ENABLED=0. For example:

CGO_ENABLED=0 go install go.uber.org/mock/mockgen@latest

@bap2pecs
Copy link

If it is invalid, a workaround is to re-sign it with codesign -f -s - bin/mockgen.

$ codesign -v $(which mockgen)                                                                                                                                   [11:29:32]
/Users/<username>/go/bin/mockgen: invalid signature (code or signature have been modified)
In architecture: arm64

$ codesign -f -s $(which mockgen)                                                                                                                                [11:29:46]
error: The specified item could not be found in the keychain.

I got this error but the way @jpotterm mentioned worked for me

$ CGO_ENABLED=0 go install go.uber.org/mock/mockgen@latest
$ mockgen -version                                                                                                                                               [11:30:26]
v0.4.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants