I should add, that the issue is very easy to reproduce (at least on my system). Install a library in /usr/local/lib. Write a test program that links that library. Build it (no errors). Run it, and it fails, with that "Expected in: unknown". In my case I used an example program from the GEOS library, cc -I/usr/local/include capi_indexed_predicate.c -o capi_indexed_predicate -L/usr/local/lib -lgeos_c
Post
Replies
Boosts
Views
Activity
There are others seeing this, but so far it seems a small group. https://stackoverflow.com/questions/77137284/dynamic-linker-fails-to-find-symbol-at-runtime-after-updating-to-xcode-15
YOLO, so I just updated to 13.6 and nothing has changed, still cannot resolve libraries in /usr/local/lib.
YOLO, so I installed 13.6, but it didn't change anything here, dyloading @rpath deps from /usr/local is still borked.
Is there any way to change allowClassicFallbackPaths? Grepping the source I see it shows up via getAMFI() but not where getAMFI() is defined. Seems like flipping that bit would be the cleanest way for people like me to get back the old behaviour for a while, while we change over all our library builds to use full paths on install. For the moment, I have turned off SIP and set DYLD_FALLBACK_LIBRARY_PATH in /etc/zprofile, but that makes me nervous as a full-time solution.
Updated to Sonoma recently, the issue is still there, but the error message is now at least descriptive.
dyld[89082]: Library not loaded: @rpath/libgeos_c.1.dylib
Referenced from: <A23D3060-FF70-3AEA-B4AA-F5E92F7D0C13> /Users/pramsey/tmp/capi_indexed_predicate
Reason: no LC_RPATH's found
zsh: abort ./capi_indexed_predicate
I guess this means that Apple is definitely not going to change the behaviour back to the original, UNIX'y behaviour.