Skip to content

Commit 7d0271b

Browse files
committed
depends: Set CMAKE_INSTALL_RPATH for native packages
After bitcoin#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: bitcoin#19981 (comment) https://discourse.cmake.org/t/install-rpath-use-link-path-not-working-when-cmake-exe-linker-flags-ldflags-is-set/1892 Commands useful for building / testing this change make -C depends MULTIPROCESS=1 print-libmultiprocess_cmake make -C depends MULTIPROCESS=1 print-native_libmultiprocess_cmake make -C depends MULTIPROCESS=1 HOST=x86_64-apple-darwin16 print-libmultiprocess_cmake rm -rvf depends/x86_64-pc-linux-gnu/native depends/work/staging depends/work/build make -C depends MULTIPROCESS=1 V=1 native_libmultiprocess_staged for f in `find -name mpgen`; do echo == $f ==; readelf -d $f | grep -i path; done make -C depends MULTIPROCESS=1 V=1 native_libmultiprocess_built find -name CMakeCache.txt Fixes bitcoin#19981
1 parent 72affcb commit 7d0271b

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

depends/funcs.mk

+3-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,9 @@ $(1)_cmake=env CC="$$($(1)_cc)" \
163163
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
164164
LDFLAGS="$$($(1)_ldflags)" \
165165
cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)"
166-
ifneq ($($(1)_type),build)
166+
ifeq ($($(1)_type),build)
167+
$(1)_cmake += -DCMAKE_INSTALL_RPATH:PATH="$$($($(1)_type)_prefix)/lib"
168+
else
167169
ifneq ($(host),$(build))
168170
$(1)_cmake += -DCMAKE_SYSTEM_NAME=$($(host_os)_cmake_system)
169171
$(1)_cmake += -DCMAKE_C_COMPILER_TARGET=$(host)

0 commit comments

Comments
 (0)