meson: Set up absolute rpaths to libdir

While I (Andres) had planned to use relative rpaths, it looks like agreeing on
the precise path might take a bit. So set up absolute rpaths for now.

I'm pushing this fairly quickly after posting the patch as several hackers
fought with this issue.

Discussion: https://postgr.es/m/20220927011951.j3h4o7n6bhf7dwau@awork3.anarazel.de
This commit is contained in:
Andres Freund 2022-09-26 19:44:05 -07:00
parent 1330dcdec0
commit a1860071b3
1 changed files with 15 additions and 2 deletions

View File

@ -2471,9 +2471,22 @@ bin_install_rpaths = []
lib_install_rpaths = []
mod_install_rpaths = []
# Add extra_lib_dirs to rpath. Not needed on darwin, as the install_name of
# libraries in extra_lib_dirs will be used anyway.
# Don't add rpaths on darwin for now - as long as only absolute references to
# libraries are needed, absolute LC_ID_DYLIB ensures libraries can be found in
# their final destination.
if host_system != 'darwin'
# Add absolute path to libdir to rpath. This ensures installed binaries /
# libraries find our libraries (mainly libpq).
bin_install_rpaths += dir_prefix / dir_lib
lib_install_rpaths += dir_prefix / dir_lib
mod_install_rpaths += dir_prefix / dir_lib
# Add extra_lib_dirs to rpath. This ensures we find libraries we depend on.
#
# Not needed on darwin even if we use relative rpaths for our own libraries,
# as the install_name of libraries in extra_lib_dirs will point to their
# location anyway.
bin_install_rpaths += postgres_lib_d
lib_install_rpaths += postgres_lib_d
mod_install_rpaths += postgres_lib_d