diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2019-06-10 21:33:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-10 21:33:19 -0400 |
commit | fc04ec9274394fb2366c8c9eae581ead4932ae4f (patch) | |
tree | abe27c1094ae58974906c6c56bec2ded3cfe9fb7 /pkgs | |
parent | d641d2b7410777aa4cda884aeea50e49bffb9d32 (diff) | |
parent | 6261601b00001f88ec03cb33f745d000a47f5286 (diff) | |
download | nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.tar nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.tar.gz nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.tar.bz2 nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.tar.lz nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.tar.xz nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.tar.zst nixlib-fc04ec9274394fb2366c8c9eae581ead4932ae4f.zip |
Merge pull request #58063 from illegalprime/nss-cross
nss: cross compile support
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/libraries/nss/default.nix | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix index 87bc1a16f236..f3fc4caf3154 100644 --- a/pkgs/development/libraries/nss/default.nix +++ b/pkgs/development/libraries/nss/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames }: +{ stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames, buildPackages }: let nssPEM = fetchurl { @@ -17,7 +17,11 @@ in stdenv.mkDerivation rec { sha256 = "1zvabgxlyvz3fnv4w89y4a5qkscjmm88naf929dgvvgfnrchwqm5"; }; - buildInputs = [ perl zlib sqlite ] + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + nativeBuildInputs = [ perl ]; + + buildInputs = [ zlib sqlite ] ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames; propagatedBuildInputs = [ nspr ]; @@ -43,7 +47,9 @@ in stdenv.mkDerivation rec { preConfigure = "cd nss"; - makeFlags = [ + makeFlags = let + cpu = stdenv.hostPlatform.parsed.cpu.name; + in [ "NSPR_INCLUDE_DIR=${nspr.dev}/include" "NSPR_LIB_DIR=${nspr.out}/lib" "NSDISTMODE=copy" @@ -52,6 +58,12 @@ in stdenv.mkDerivation rec { "NSS_ENABLE_ECC=1" "USE_SYSTEM_ZLIB=1" "NSS_USE_SYSTEM_SQLITE=1" + "NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc" + ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [ + "OS_TEST=${cpu}" + "CPU_ARCH=${cpu}" + "CROSS_COMPILE=1" + "NSS_DISABLE_GTESTS=1" # don't want to build tests when cross-compiling ] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1" ++ stdenv.lib.optional stdenv.isDarwin "CCC=clang++"; @@ -95,7 +107,10 @@ in stdenv.mkDerivation rec { chmod 0755 $out/bin/nss-config ''; - postFixup = '' + postFixup = let + isCross = stdenv.hostPlatform != stdenv.buildPlatform; + nss = if isCross then buildPackages.nss.tools else "$out"; + in '' for libname in freebl3 nssdbm3 softokn3 do '' + (if stdenv.isDarwin @@ -106,7 +121,7 @@ in stdenv.mkDerivation rec { libfile="$out/lib/lib$libname.so" LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \ '') + '' - $out/bin/shlibsign -v -i "$libfile" + ${nss}/bin/shlibsign -v -i "$libfile" done moveToOutput bin "$tools" |