[MacPorts] #66211: gv @3.7.4 does not launch because symbol _yylex is not found in flat namespace

MacPorts noreply at macports.org
Wed Nov 9 21:33:04 UTC 2022


#66211: gv @3.7.4 does not launch because symbol _yylex is not found in flat
namespace
------------------------+------------------------
  Reporter:  ballapete  |      Owner:  ryandesign
      Type:  defect     |     Status:  accepted
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:
Resolution:             |   Keywords:  monterey
      Port:  gv         |
------------------------+------------------------
Changes (by ryandesign):

 * owner:  (none) => ryandesign
 * cc: ryandesign@… (removed)
 * status:  new => accepted


Comment:

 Did you build from source or get a binary from our server? On Monterey,
 when I install the binary from the server it works fine but when I build
 from source I get the same problem you got. To ensure you have the binary
 version, run:
 {{{
 sudo port -nb upgr --force gv
 }}}

 I fixed a handful of `yylex`-related issues earlier this year (in
 [https://github.com/macports/macports-
 ports/blob/132c755c14f31787b55c2072da538f7965995c8c/graphics/magicpoint/files/implicit.patch
 magicpoint],
 [https://github.com/macports/macports-
 ports/blob/99efa4bbcd47031cf2af5c17be4e340366d16787/sysutils/grok/files/implicit.patch
 grok],
 [https://github.com/macports/macports-
 ports/blob/132c755c14f31787b55c2072da538f7965995c8c/net/flow-
 tools/files/implicit.patch flow-tools],
 [https://github.com/macports/macports-
 ports/blob/132c755c14f31787b55c2072da538f7965995c8c/textproc/dict/files/implicit.patch
 dict],
 [https://github.com/macports/macports-
 ports/blob/e0cbf002df33dc9cff1d5ce59f53536e8ef90a50/games/micropolis/files
 /src-tclx-src-tclxgdat.y.patch micropolis])
 but those were `implicit declaration of function` problems, not `symbol
 not found` problems.

 However it does sound exactly like a problem we found with the cscope port
 in #64448. The cause seemed to be an apparent change in macOS Monterey
 (maybe the dyld dynamic loader) with regard to programs that have been
 stripped. The cscope Portfile had been manually running `strip` on the
 `cscope` executable, which had been fine prior to Monterey, but as of
 Monterey such a program failed to run—even a program that had been
 compiled and stripped on Big Sur and was working on Big Sur.

 For gv I can't see anywhere that the program is being stripped so it might
 not be the same cause here. As I noted in the cscope bug report, I didn't
 understand why not stripping fixed the problem, and I suspected some
 deeper issue like an OS bug, but Apple was unhelpful in my bug report to
 them and since we found a workaround at the time I stopped pursuing it.

 The cscope issue was originally filed as #63793 which I attempted to fix
 by declaring a dependency on the flex and bison ports, since they would be
 used anyway if found. That didn't seem to affect the situation there, but
 it does for gv: I do have MacPorts bison and flex installed on the machine
 where I see the problem, and I see that the `gv` executable does end up
 linked with flex's libfl.2.dylib. If I rebuild in trace mode (`sudo port
 -nst upgrade --force gv`) then gv won't find MacPorts flex or bison (since
 they're not declared as dependencies) and the problem goes away. Perhaps
 this indicates a problem with the flex port.

 My machine where I can confirm the gv issue is a little out of date,
 running macOS 12.3.1 with command line tools 13.2.0.0.1.1638488800. What
 versions do you have? The binary was built on January 23, 2022, at which
 time our Monterey build machine was still running macOS 12.0.1 with a
 corresponding version of the CLT. The cscope bug was reported on macOS
 12.1.

-- 
Ticket URL: <https://trac.macports.org/ticket/66211#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list