From c3b1e7e7a9077e2bc431fff7eef26bfbd4eefb50 Mon Sep 17 00:00:00 2001 From: Joe Hermaszewski Date: Tue, 10 Nov 2020 13:31:02 +0800 Subject: [PATCH] audiofile: fix static build Fixes https://github.com/NixOS/nixpkgs/issues/103215 --- pkgs/development/libraries/audiofile/default.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/development/libraries/audiofile/default.nix b/pkgs/development/libraries/audiofile/default.nix index 46c29e2fa125..9f945b15dec2 100644 --- a/pkgs/development/libraries/audiofile/default.nix +++ b/pkgs/development/libraries/audiofile/default.nix @@ -28,6 +28,21 @@ stdenv.mkDerivation rec { # fix build with gcc9 NIX_CFLAGS_LINK = lib.optional (stdenv.system == "i686-linux") "-lgcc"; + # Even when statically linking, libstdc++.la is put in dependency_libs here, + # and hence libstdc++.so passed to the linker, just pass -lstdc++ and let the + # compiler do what it does best. (libaudiofile.la is a generated file, so we + # have to run `make` that far first). + # + # Without this, the executables in this package (sfcommands and examples) + # fail to build: https://github.com/NixOS/nixpkgs/issues/103215 + # + # There might be a more sensible way to do this with autotools, but I am not + # smart enough to discover it. + preBuild = lib.optionalString stdenv.targetPlatform.isStatic '' + make -C libaudiofile $makeFlags + sed -i "s/dependency_libs=.*/dependency_libs=' -lstdc++'/" libaudiofile/libaudiofile.la + ''; + patches = [ ./gcc-6.patch ./CVE-2015-7747.patch