summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2023-11-08 03:58:31 -0800
committerAdam Joseph <adam@westernsemico.com>2023-11-08 17:07:03 -0800
commitad91b28cd92be6715945505dd0ae9deda2e18a77 (patch)
tree36f332e451b36949434725850629d379c975ff80
parenteb2f8aa686fe22faf939f3ef158f9062f908e6e2 (diff)
downloadnixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.tar
nixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.tar.gz
nixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.tar.bz2
nixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.tar.lz
nixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.tar.xz
nixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.tar.zst
nixpkgs-ad91b28cd92be6715945505dd0ae9deda2e18a77.zip
skalibs: fix cross
skalibs-2.14.0.0 added detection for some weird bug exhibited in
"old glibcs and some virtual platforms".  When cross compiling the
detector cannot be run:

> posixspawnearlyreturn: `yes` if the target has a broken
> `posix_spawn()` implementation that can return before the
> child has successfully exec'ed. That happens with old glibcs
> and some virtual platforms.

I just took a wild guess here and picked `no`.

Co-authored-by: Alyssa Ross <hi@alyssa.is>
-rw-r--r--pkgs/development/skaware-packages/skalibs/default.nix17
1 files changed, 16 insertions, 1 deletions
diff --git a/pkgs/development/skaware-packages/skalibs/default.nix b/pkgs/development/skaware-packages/skalibs/default.nix
index 7b035eee57f..80db4b62482 100644
--- a/pkgs/development/skaware-packages/skalibs/default.nix
+++ b/pkgs/development/skaware-packages/skalibs/default.nix
@@ -1,4 +1,8 @@
-{ skawarePackages, pkgs }:
+{ lib
+, stdenv
+, skawarePackages
+, pkgs
+}:
 
 with skawarePackages;
 
@@ -21,6 +25,17 @@ buildPackage {
     # Empty the default path, which would be "/usr/bin:bin".
     # It would be set when PATH is empty. This hurts hermeticity.
     "--with-default-path="
+
+  ] ++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [
+    # ./configure: sysdep posixspawnearlyreturn cannot be autodetected
+    # when cross-compiling. Please manually provide a value with the
+    # --with-sysdep-posixspawnearlyreturn=yes|no|... option.
+    #
+    # posixspawnearlyreturn: `yes` if the target has a broken
+    # `posix_spawn()` implementation that can return before the
+    # child has successfully exec'ed. That happens with old glibcs
+    # and some virtual platforms.
+    "--with-sysdep-posixspawnearlyreturn=no"
   ];
 
   postInstall = ''