about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix7
-rw-r--r--pkgs/test/cross/default.nix1
2 files changed, 5 insertions, 3 deletions
diff --git a/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix b/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix
index fc88e61c6560e..239d60268007e 100644
--- a/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix
+++ b/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix
@@ -42,11 +42,12 @@ in
   #
   # No rule to make target '../../../gcc-xx.x.x/libgcc/config/loongarch/crti.S', needed by 'crti.o'.  Stop.
   #
-  # For LoongArch64, a hacky workaround is to simply touch them,
+  # For LoongArch64 and S390, a hacky workaround is to simply touch them,
   # as the platform forces .init_array support.
   #
   # https://www.openwall.com/lists/musl/2022/11/09/3
   #
-  + lib.optionalString stdenv.targetPlatform.isLoongArch64 ''
-  touch libgcc/config/loongarch/crt{i,n}.S
+  # 'parsed.cpu.family' won't be correct for every platform.
++ lib.optionalString (stdenv.targetPlatform.isLoongArch64 || stdenv.targetPlatform.isS390) ''
+  touch libgcc/config/${stdenv.targetPlatform.parsed.cpu.family}/crt{i,n}.S
 ''
diff --git a/pkgs/test/cross/default.nix b/pkgs/test/cross/default.nix
index ff83aedca1231..8daa03c562223 100644
--- a/pkgs/test/cross/default.nix
+++ b/pkgs/test/cross/default.nix
@@ -141,6 +141,7 @@ let
     pkgs.pkgsCross.m68k.stdenv
     pkgs.pkgsCross.aarch64-multiplatform.pkgsBuildTarget.gcc
     pkgs.pkgsCross.powernv.pkgsBuildTarget.gcc
+    pkgs.pkgsCross.s390.stdenv
     pkgs.pkgsCross.mips64el-linux-gnuabi64.stdenv
     pkgs.pkgsCross.mips64el-linux-gnuabin32.stdenv
     pkgs.pkgsCross.mingwW64.stdenv