dyld[38909]: symbol not found in flat namespace '_yylex'

1.2k Views Asked by At

I have recently upgraded all installed components in macports.

Post the upgradation, cscope has stopped working.

when invoked on commandlind it exits with the following error

$  cscope
dyld[39064]: symbol not found in flat namespace '_yylex'
Abort

flex is installed and its lib is also available in the path

Any pointers in this will helpful

1

There are 1 best solutions below

0
ryandesign On

You had also asked this question in a MacPorts bug report where I eventually discovered that the problem only occurred on macOS 12 (Monterey) and only because MacPorts was running strip on the binary after it was built. I fixed the problem in MacPorts by no longer having MacPorts run strip on the binary. You reported in the ticket that this fixed the problem for you as well.

We had seen the problem on macOS 12.0.1, 12.1, and 12.2 with Xcode 13.1 and 13.2. Curiously even if the program was compiled and stripped on macOS 11 with Xcode 12 (where it worked fine) if that binary was then run on macOS 12 it failed again.

Stripping a binary probably shouldn't break it in this way, so this may be a bug in strip or some other component of Xcode or macOS so I reported it to Apple as feedback id FB9866173.