postgresql_jit: fix darwin build

So, patchelf works on ELF files and these don't exist on Darwin. I'm not
aware of any other way to eliminate all references of the executable's
body while preserving library paths in the header. This still works, the
only problem is that darwin has a dependency on llvm.dev, so it's
runtime closure is larger.
This commit is contained in:
Maximilian Bosch
2023-03-29 08:39:47 +02:00
parent 608cb37533
commit a5a715bb24
+7 -5
View File
@@ -164,11 +164,13 @@ let
--replace ${self.llvmPackages.llvm.dev}/bin/llvm-config llvm-config \
--replace -I${self.llvmPackages.llvm.dev}/include ""
# Stop lib depending on the -dev output of llvm
rpath=$(patchelf --print-rpath $out/lib/llvmjit.so)
nuke-refs -e $out $out/lib/llvmjit.so
# Restore the correct rpath
patchelf $out/lib/llvmjit.so --set-rpath "$rpath"
${lib.optionalString (!stdenv'.isDarwin) ''
# Stop lib depending on the -dev output of llvm
rpath=$(patchelf --print-rpath $out/lib/llvmjit.so)
nuke-refs -e $out $out/lib/llvmjit.so
# Restore the correct rpath
patchelf $out/lib/llvmjit.so --set-rpath "$rpath"
''}
''}
'';