From 4565d75edc774b611040bdbb9abba9aacd80b32e Mon Sep 17 00:00:00 2001 From: yihuang Date: Fri, 25 Aug 2023 14:10:49 +0800 Subject: [PATCH] Problem: librocksdb has wrong rpath in cross-compiling (backport: #1131, #1126) (#1142) * fix librocksdb version (#1131) * fix rocksdb version --------- Co-authored-by: mmsqe --- default.nix | 2 +- nix/rocksdb.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/default.nix b/default.nix index cb0e388b57..683640156e 100644 --- a/default.nix +++ b/default.nix @@ -45,7 +45,7 @@ buildGoApplication rec { else "-lrocksdb -pthread -lstdc++ -ldl"; postFixup = lib.optionalString stdenv.isDarwin '' - ${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/librocksdb.7.dylib" "${rocksdb}/lib/librocksdb.dylib" $out/bin/cronosd + ${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/librocksdb.8.dylib" "${rocksdb}/lib/librocksdb.dylib" $out/bin/cronosd ''; doCheck = false; diff --git a/nix/rocksdb.nix b/nix/rocksdb.nix index 8bcbc35060..9b3333d173 100644 --- a/nix/rocksdb.nix +++ b/nix/rocksdb.nix @@ -81,7 +81,7 @@ stdenv.mkDerivation rec { mkdir -p $tools/bin cp tools/{ldb,sst_dump}${stdenv.hostPlatform.extensions.executable} $tools/bin/ '' + lib.optionalString stdenv.isDarwin '' - ls -1 $tools/bin/* | xargs -I{} ${stdenv.cc.bintools.targetPrefix}install_name_tool -change "@rpath/librocksdb.7.dylib" $out/lib/librocksdb.dylib {} + ls -1 $tools/bin/* | xargs -I{} ${stdenv.cc.bintools.targetPrefix}install_name_tool -change "@rpath/librocksdb.${lib.versions.major version}.dylib" $out/lib/librocksdb.dylib {} '' + lib.optionalString (stdenv.isLinux && enableShared) '' ls -1 $tools/bin/* | xargs -I{} patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib {} ''; @@ -94,7 +94,7 @@ stdenv.mkDerivation rec { fi '' + lib.optionalString stdenv.isDarwin '' ${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/libsnappy.1.dylib" "${snappy}/lib/libsnappy.1.dylib" $out/lib/librocksdb.dylib - ${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/librocksdb.7.dylib" "$out/lib/librocksdb.7.dylib" $out/lib/librocksdb.dylib + ${stdenv.cc.targetPrefix}install_name_tool -change "@rpath/librocksdb.${lib.versions.major version}.dylib" "$out/lib/librocksdb.${lib.versions.major version}.dylib" $out/lib/librocksdb.dylib ''; meta = with lib; {