[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