diff options
author | fanquake <fanquake@gmail.com> | 2020-12-10 10:28:22 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2020-12-10 11:11:50 +0800 |
commit | 17918a987aee4ed380758a5b2b1b0782b587d59f (patch) | |
tree | 60af7c37b9ea37bb6f752ca9587df2333da3cc74 | |
parent | 0038ce97584f28b0718a4c9f4faa8c0c42c5fe80 (diff) | |
parent | 7d0271b5c30f86e4af175a5ab7df5e593cd85195 (diff) | |
download | bitcoin-17918a987aee4ed380758a5b2b1b0782b587d59f.tar.xz |
Merge #20046: depends: Set CMAKE_INSTALL_RPATH for native packages
7d0271b5c30f86e4af175a5ab7df5e593cd85195 depends: Set CMAKE_INSTALL_RPATH for native packages (Russell Yanofsky)
Pull request description:
This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10).
---
After #19685 started setting `LDFLAGS`, the `INSTALL_RPATH_USE_LINK_PATH` cmake option used in the libmultiprocess build no longer works, so it is neccessary to set `CMAKE_INSTALL_RPATH` as a fallback.
It's unclear currently whether the bad interaction between `INSTALL_RPATH_USE_LINK_PATH` and `LDFLAGS` is a bug, but the issue is reported:
- https://github.com/bitcoin/bitcoin/issues/19981#issuecomment-696680877
- https://discourse.cmake.org/t/install-rpath-use-link-path-not-working-when-cmake-exe-linker-flags-ldflags-is-set/1892
Fixes #19981
ACKs for top commit:
fanquake:
ACK 7d0271b5c30f86e4af175a5ab7df5e593cd85195 - I haven't looked in depth, but I've re-read through #19981 and checked the failure by testing #19160 (with this reverted):
dongcarl:
ACK 7d0271b Looked into this a bit, it makes sense that for the things we build in depends, we want the library search to start in depends. It seems reasonable to expect this to happen automatically when `CMAKE_INSTALL_PREFIX` and `INSTALL_RPATH_USE_LINK_PATH` are set, but oh well...
Tree-SHA512: 97cc5801c3204c14cd33004423631456ca0701e2127ee5146810a76e2f4aac9de1f4b5437402a4329cda54e022dc99270fee7e38c2995765f36b3848215fa78e
-rw-r--r-- | depends/funcs.mk | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/depends/funcs.mk b/depends/funcs.mk index 58d882eb05..5697bd6f15 100644 --- a/depends/funcs.mk +++ b/depends/funcs.mk @@ -163,7 +163,9 @@ $(1)_cmake=env CC="$$($(1)_cc)" \ CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \ LDFLAGS="$$($(1)_ldflags)" \ cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" -ifneq ($($(1)_type),build) +ifeq ($($(1)_type),build) +$(1)_cmake += -DCMAKE_INSTALL_RPATH:PATH="$$($($(1)_type)_prefix)/lib" +else ifneq ($(host),$(build)) $(1)_cmake += -DCMAKE_SYSTEM_NAME=$($(host_os)_cmake_system) $(1)_cmake += -DCMAKE_C_COMPILER_TARGET=$(host) |