grpc: don't set LD_LIBRARY_PATH when cross compiling

LD_LIBRARY_PATH is only necessary in the native compilation case when we
need to execute grpc_cpp_plugin from the build directory. Disabling this
for cross is not only cleaner, but eliminates linker failures when cross
compiling to a compatible configuration, since LD_LIBRARY_PATH takes
precedence over the rpath set in buildPackages.grpc's grpc_cpp_plugin.
This commit is contained in:
sternenseemann 2021-10-07 21:04:39 +02:00
parent 9a76986ee0
commit 34ca27bc95

View File

@ -68,7 +68,12 @@ stdenv.mkDerivation rec {
rm -vf BUILD
'';
preBuild = ''
# When natively compiling, grpc_cpp_plugin is executed from the build directory,
# needing to load dynamic libraries from the build directory, so we set
# LD_LIBRARY_PATH to enable this. When cross compiling we need to avoid this,
# since it can cause the grpc_cpp_plugin executable from buildPackages to
# crash if build and host architecture are compatible (e. g. pkgsLLVM).
preBuild = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
export LD_LIBRARY_PATH=$(pwd)''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
'';