[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