missing libraries from /usr/lib macOS 11 (formerly part of SDK) causing crashes

When running existing applications on macOS 11 systems (through beta 6, Intel, clean installs), I've noticed that many of the libraries that had .tbd files in versions of the macOS SDK as recent at 10.15 do not have corresponding .dylibs in /usr/lib in macOS 11.

The result of running our applications that expect these libraries is an immediate crash.

Considering that some of these libraries have been linkable under versions of macOS for years and are pretty important for the use of third-party libraries (such as libcurl, libxml2, libpq, libxslt) it seems odd that a decision would be made to remove these without warning.

Somewhat ironicaly, libpython2.7 is still there despite 2.7 now being out of support and Apple having announced some time ago that they'd be removing support for "scripting languages" in future versions of the OS. Not that I'm complaining, although on the basis of the stated removal, we have included our own copy of libpython for internal use, since we had fair warning from Apple.

Any suggestions? Anyone else having problems with this?

It appears this may be more isolated than it first appeared. Definitely looks like libpq is gone from both the 10.16/11 SDK and /usr/lib on machines that are running new installs of macOS 11.

However, libcurl, libxml2 and libxslt (and others) still have tbd files and appear to be available under 10.16/11 without a problem.

It does appear that if you link against libpq.tbd, not only do you need to handle incorporating the libraries directly, but you need to issue an update to make it compatible for running on macOS 11.

However, with this change it looks like our app is starting up on macOS 11.

I'm still looking for a better answer if anyone has one.
The libraries may not be missing...from the Release Notes:

New in macOS Big Sur 11 beta, the system ships with a built-in dynamic linker cache of all system-provided libraries. As part of this change, copies of dynamic libraries are no longer present on the filesystem. Code that attempts to check for dynamic library presence by looking for a file at a path or enumerating a directory will fail. Instead, check for library presence by attempting to dlopen() the path, which will correctly check for the library in the cache. (62986286)

missing libraries from /usr/lib macOS 11 (formerly part of SDK) causing crashes
 
 
Q