[MacPorts] #58935: go @1.13: build fails on 10.9 and less
MacPorts
noreply at macports.org
Mon Oct 7 03:16:22 UTC 2019
#58935: go @1.13: build fails on 10.9 and less
---------------------+-------------------------------
Reporter: kencu | Owner: ci42
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords: lion mountainlion
Port: go |
---------------------+-------------------------------
Comment (by Ionic):
Just dropping the patches (and the old env setting) doesn't work.
The new issue is `go` adding `$INODE64` to the `_fdopendir` symbol when
the arch is amd64 (== x86_64) and `libMacportsLegacySupport` doesn't have
such a function - only `fdopendir`. We'll really have to fix the
dependency for this to work correctly.
The weird part is that I don't get why go is adding the `$INODE64` suffix
in the first place. This symbol is used by Apple to disambiguate between
`struct stat` and `struct stat64`. `fdopendir` first appeared in 10.10 and
doesn't even take a `struct stat` parameter (but does likely use it
internally). I guess they could have just said that they only support the
new 64-bit struct for the new function, but that would have created other
problems, I guess.
Looking at a 10.11 box, I see that `/usr/lib/system/libsystem_c.dylib`
really includes both symbols:
{{{
0000000000081f03 T _fdopendir
000000000002c5ee T _fdopendir$INODE64
}}}
So `go` did the right thing here (and was broken in earlier versions that
only used the 32-bit-struct version).
So, to sum it up, before I can push any changes to `go` itself, I'll have
to get the `legacy-support` port into working condition first.
--
Ticket URL: <https://trac.macports.org/ticket/58935#comment:6>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list