The main thing you are missing is that those steps, as you've correctly laid them out, did in fact result in a runnable executable, right up until installing the XCode 15 command-line tools. Why would that be so? The only thing I can point to is the man page of dyld, which says, regarding DYLD_FALLBACK_LIBRARY_PATH, that "By default, it is set to /usr/local/lib:/usr/lib". Which would explain how a library or executable lacking LC_RPATH entries could still find its dependencies in /usr/local/lib.
Post
Replies
Boosts
Views
Activity
So my question is, was this a purposeful change in policy regarding /usr/local/lib for XCode 15? Either in the dyloader no longer searching in /usr/local/lib:/usr/lib as a fallback, or in SIP trimming out that default value, in the same way it trims out user-set values. (This SIP behaviour, by the way, is why I cannot just work around the change by setting DYLD_FALLBACK_LIBRARY_PATH manually. My manual changes get trimmed out by SIP for child processes. I guess I could turn off SIP.)
I have not opened a ticket, and I don't really know how to, or even if I am allowed to as a random internet dev rather than an accredited apple dev. Can you?
OK, I used the Feedback Assistance and created an issue too.
Feedback was submitted on FB13226043
Just installed the latest XCode and MacOS 13.6.3 and it's still busted.
@(#)PROGRAM:ld PROJECT:dyld-1022.1
BUILD 13:21:42 Nov 10 2023