运行时/cgo:在运行时/cgo初始化期间不要更改目录,

mw3dktmi  于 6个月前  发布在  Go
关注(0)|答案(2)|浏览(45)

CL 8784 中,runtime/cgoios 上给了 special-case code 以更改当前工作目录到应用根目录。
这种高级别的行为在像 runtime/cgo 这样低级别的包里显得非常冒失和不合适,而且它导致 runtime/cgo 在其他 darwin 平台上不需要该框架时却依赖于 CoreFoundation 框架。
如果 init_working_dir 的行为本应属于标准库,那么 os 包中的一个 init 函数将比 runtime/cgo 中的临时副作用更合适。(注意 @golang/ios;CC @golang/runtime)

j8ag8udp

j8ag8udp1#

具体来说,这个特殊情况使得像 misc/cgo/testcarchive 这样的事物变得复杂,然后需要它自己的特殊情况代码来处理不恰当的依赖关系。
此外,它还会导致一个链接到更大 ios 程序的 Go 库改变当前工作目录,这完全不是一个合适的库行为!

tgabmvqs

tgabmvqs2#

https://go.dev/cl/463752提到了这个问题:cmd/dist,internal/platform: reenable the c-archive build mode on ios

相关问题