about summary refs log tree commit diff
path: root/pkgs/development/interpreters/spidermonkey
diff options
context:
space:
mode:
authorZhaofeng Li <hello@zhaofeng.li>2022-01-05 11:17:38 -0800
committerZhaofeng Li <hello@zhaofeng.li>2022-01-10 11:10:51 -0800
commit2303031e51ca6e4bc11db858492992c0ea0ecd2a (patch)
tree1d38c2469139ea79a1cc21c84984e1973ba7179b /pkgs/development/interpreters/spidermonkey
parentef4fe46f17065d178f1067a24a9919ec57c93536 (diff)
spidermonkey: Force lp64d ABI for riscv64
cc-rs is hardcoded to use the soft-float ABI for riscv64, while
the rest of the system is double-float. This is not just a missing
stub header file - You can't link object files using different
ABIs.
Diffstat (limited to 'pkgs/development/interpreters/spidermonkey')
-rw-r--r--pkgs/development/interpreters/spidermonkey/78.nix4
1 files changed, 4 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/spidermonkey/78.nix b/pkgs/development/interpreters/spidermonkey/78.nix
index a534026d9ecd8..4f525c8f0a5b8 100644
--- a/pkgs/development/interpreters/spidermonkey/78.nix
+++ b/pkgs/development/interpreters/spidermonkey/78.nix
@@ -107,6 +107,10 @@ stdenv.mkDerivation rec {
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
+  # cc-rs insists on using -mabi=lp64 (soft-float) for riscv64,
+  # while we have a double-float toolchain
+  NIX_CFLAGS_COMPILE = lib.optionalString (with stdenv.hostPlatform; isRiscV && is64bit) "-mabi=lp64d";
+
   # Remove unnecessary static lib
   preFixup = ''
     moveToOutput bin/js78-config "$dev"