From beb309626381bf189cd2ae8bde83078b9de47c6a Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 6 Dec 2023 12:34:03 +0000 Subject: [PATCH 1/3] depends: always install capnp to /lib On some systems, capnp would be installed into `lib64`, I assume due to the use of GNUInstallDirs, however all other libs we build in depends, go into lib/. Rather than adding lib64/ to the pkg-config and link flags, I opted for always installing into lib/. Co-authored-by: Ryan Ofsky --- depends/packages/capnp.mk | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/depends/packages/capnp.mk b/depends/packages/capnp.mk index 1c1a77eb16a..2465c8091bb 100644 --- a/depends/packages/capnp.mk +++ b/depends/packages/capnp.mk @@ -5,10 +5,15 @@ $(package)_download_file=$(native_$(package)_download_file) $(package)_file_name=$(native_$(package)_file_name) $(package)_sha256_hash=$(native_$(package)_sha256_hash) +# Hardcode library install path to "lib" to match the PKG_CONFIG_PATH +# setting in depends/config.site.in, which also hardcodes "lib". +# Without this setting, cmake by default would use the OS library +# directory, which might be "lib64" or something else, not "lib", on multiarch systems. define $(package)_set_vars := -$(package)_config_opts := -DBUILD_TESTING=OFF -$(package)_config_opts += -DWITH_OPENSSL=OFF -$(package)_config_opts += -DWITH_ZLIB=OFF + $(package)_config_opts := -DBUILD_TESTING=OFF + $(package)_config_opts += -DWITH_OPENSSL=OFF + $(package)_config_opts += -DWITH_ZLIB=OFF + $(package)_config_opts += -DCMAKE_INSTALL_LIBDIR=lib/ endef define $(package)_config_cmds From 506634d79d6427925cd458f67799fe59e0ab14dd Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 10 Nov 2023 17:06:36 +0000 Subject: [PATCH 2/3] depends: always install libmultiprocess to /lib On some systems, libmultiprocess would be installed into `lib64`, I assume due to the use of GNUInstallDirs, however all other libs we build in depends, go into lib/. Rather than adding lib64/ to the pkg-config and link flags, I opted for always installing into lib/. This was changed in https://github.com/chaincodelabs/libmultiprocess/pull/79 upstream. Co-authored-by: Ryan Ofsky --- depends/packages/libmultiprocess.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/depends/packages/libmultiprocess.mk b/depends/packages/libmultiprocess.mk index 765d6493776..98eae1e6d65 100644 --- a/depends/packages/libmultiprocess.mk +++ b/depends/packages/libmultiprocess.mk @@ -8,7 +8,12 @@ ifneq ($(host),$(build)) $(package)_dependencies += native_capnp endif +# Hardcode library install path to "lib" to match the PKG_CONFIG_PATH +# setting in depends/config.site.in, which also hardcodes "lib". +# Without this setting, cmake by default would use the OS library +# directory, which might be "lib64" or something else, not "lib", on multiarch systems. define $(package)_set_vars := +$(package)_config_opts += -DCMAKE_INSTALL_LIBDIR=lib/ ifneq ($(host),$(build)) $(package)_config_opts := -DCAPNP_EXECUTABLE="$$(native_capnp_prefixbin)/capnp" $(package)_config_opts += -DCAPNPC_CXX_EXECUTABLE="$$(native_capnp_prefixbin)/capnpc-c++" From bde8d63b17637c507a543cebe90f2998b5847373 Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 6 Dec 2023 12:48:09 +0000 Subject: [PATCH 3/3] depends: build libmultiprocess with position independant code This matches what we do with all other dependencies, see `--with-pic`, and fixes build failures, like #26943. --- depends/packages/libmultiprocess.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/depends/packages/libmultiprocess.mk b/depends/packages/libmultiprocess.mk index 98eae1e6d65..d237f52dbb2 100644 --- a/depends/packages/libmultiprocess.mk +++ b/depends/packages/libmultiprocess.mk @@ -14,6 +14,7 @@ endif # directory, which might be "lib64" or something else, not "lib", on multiarch systems. define $(package)_set_vars := $(package)_config_opts += -DCMAKE_INSTALL_LIBDIR=lib/ +$(package)_config_opts += -DCMAKE_POSITION_INDEPENDENT_CODE=ON ifneq ($(host),$(build)) $(package)_config_opts := -DCAPNP_EXECUTABLE="$$(native_capnp_prefixbin)/capnp" $(package)_config_opts += -DCAPNPC_CXX_EXECUTABLE="$$(native_capnp_prefixbin)/capnpc-c++"