whisper: built with -no-pie (prebuilt libraries)

Without the change the build fails as https://hydra.nixos.org/build/310775846:

    ld: libs/libz.a(deflate.o): relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE
    ld: failed to set dynamic section sizes: bad value

It happens because `libs/libz.a` comes from a
"source" tarball. As some libraries are not packaged
in `nixpkgs` let's fall back to `-no-pie`.

Co-authored-by: Justin Bedő <cu@cua0.org>
This commit is contained in:
Sergei Trofimovich
2025-10-31 21:35:45 +00:00
parent 92661251e0
commit 4f59e2fa23

View File

@@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# The package comes with prebuilt static
# libraries of bzip2, zlib, libdeflate and asmlib.
# They are not built with -fPIE and thus linking fails.
# As asmlib is not packages in nixpkgs let's disable PIE.
env.NIX_LDFLAGS = "-no-pie";
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -Dt $out/bin whisper whisper-index install -Dt $out/bin whisper whisper-index
@@ -48,5 +54,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/refresh-bio/whisper"; homepage = "https://github.com/refresh-bio/whisper";
maintainers = with maintainers; [ jbedo ]; maintainers = with maintainers; [ jbedo ];
platforms = platforms.x86_64; platforms = platforms.x86_64;
sourceProvenance = [ sourceTypes.binaryNativeCode ];
}; };
} }