-
Notifications
You must be signed in to change notification settings - Fork 208
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
chore/docs: enable cgo as much as possible #564
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tql! GNU/make 权威指南!
Forgive my frankness, but this PR is adding unprecedented complexity to the build. For proprietary builds of various distributions, using CGO is a given fact. This PR wants to cover all possible CGO builds, which doesn't seem very necessary. I think it's unnecessary to make a big fuss over a rare DNS resolution issue; a document explanation or emphasis would suffice. |
@douglarek 从用户的角度来说,如果没有安装两个工具,行为是和之前一样的,不是强制的。只是尽量在工具存在的情况下绕过glibc进行静态编译 |
@douglarek CGO_ENABLED=0 可能会带来其他潜在问题,另外由关闭 cgo 导致的 dns 解析失败的问题很难排查,考虑到用户的环境复杂度,使用 libc 而不是 pure go 实现将问题复杂度从用户转移给更为专业的打包者我认为是可接受的。 |
How about outputting whether a cgo is enabled in the version information? like this:
if not:
|
@douglarek What about the following compromise:
|
I think this is quite good; the binary released by the project can make such guarantees. However, when it comes to users compiling on their own, they can decide for themselves. |
Numb, it seems that enabling CGO on amd64 causes node domain name resolution issues.
|
Background
根据 #557 所述,应尽量开启 CGO。对于跨平台移植性,使用 static link 来保证。因此检查 musl-gcc 和 zig 的可用性并调整 CC 进行 static link。
Checklist
Full Changelogs
Issue Reference
Closes #557
Test Result