]> git.proxmox.com Git - cargo.git/commit
use DYLD_FALLBACK_LIBRARY_PATH for dylib_path_envvar on macOS
authorMarcus Calhoun-Lopez <marcuscalhounlopez@gmail.com>
Wed, 28 Nov 2018 01:41:28 +0000 (18:41 -0700)
committerMarcus Calhoun-Lopez <marcuscalhounlopez@gmail.com>
Thu, 27 Dec 2018 17:47:16 +0000 (10:47 -0700)
commitb7516d386377dc2de5fd892a5f97bb62cf71888a
treee9ab3487b16f7a63b73b0ce0762dae8da32c8609
parentfef78023a921c9cd40c777dd7229e92a7b716c00
use DYLD_FALLBACK_LIBRARY_PATH for dylib_path_envvar on macOS

When loading and linking a dynamic library or bundle, dlopen
searches in LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PWD, and
DYLD_FALLBACK_LIBRARY_PATH.
In the Mach-O format, a dynamic library has an "install path."
Clients linking against the library record this path, and the
dynamic linker, dyld, uses it to locate the library.
dyld searches DYLD_LIBRARY_PATH *before* the install path.
dyld searches DYLD_FALLBACK_LIBRARY_PATH only if it cannot
find the library in the install path.
Setting DYLD_LIBRARY_PATH can easily have unintended
consequences.

See https://users.rust-lang.org/t/subprocess-and-dynamic-library-linking-problem-interaction/7873/10
See https://trac.macports.org/ticket/57692
src/cargo/util/paths.rs