X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fshared_libs.xml;h=ea5500b89d5d5037e5567b57bf4cbc14b207cdf0;hb=65277a1c9ff86c28c656849d6f6cbb392f1eb3e7;hp=00f6f67792c3f791cfd4a8ad32c94a8e35546acf;hpb=5364ea8bd2086d3ce973988d583e3b4585d37b4d;p=ghc-hetmet.git diff --git a/docs/users_guide/shared_libs.xml b/docs/users_guide/shared_libs.xml index 00f6f67..ea5500b 100644 --- a/docs/users_guide/shared_libs.xml +++ b/docs/users_guide/shared_libs.xml @@ -242,6 +242,19 @@ ghc -dynamic Main.hs -o main -lfoo -L. -optl-Wl,-rpath,'$ORIGIN' Similarly it would be possible to use a subdirectory relative to the executable e.g. -optl-Wl,-rpath,'$ORIGIN/lib'. + + The standard assumption on Darwin/MacOS X is that dynamic libraries will + be stamped at build time with an "install name", which is the full + ultimate install path of the library file. Any libraries or executables + that subsequently link against it (even if it hasn't been installed yet) + will pick up that path as their runtime search location for it. When + compiling with ghc directly, the install name is set by default to the + location where it is built. You can override this with the + -dylib-install-name option (which passes + -install_name to the Apple linker). Cabal does this + for you. It automatically sets the install name for dynamic libraries to + the absolute path of the ultimate install location. +