From 69cde4d543f12ac55c47987b67412ddd10ac5bb3 Mon Sep 17 00:00:00 2001 From: Marie Ramlow Date: Mon, 25 Aug 2025 21:36:43 +0200 Subject: [PATCH] gcc: fix powerpc-linux cross compilers --- .../gcc/common/libgcc-buildstuff.nix | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix b/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix index 5c72e0dbdf05..1c969946ca1e 100644 --- a/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix +++ b/pkgs/development/compilers/gcc/common/libgcc-buildstuff.nix @@ -16,7 +16,7 @@ let # glibc. At this early pre-glibc stage these files sometimes # have different names. crtstuff-ofiles = - if stdenv.targetPlatform.isPower then "ecrti.o ecrtn.o ncrti.o ncrtn.o" else "crti.o crtn.o"; + if stdenv.targetPlatform.isPower64 then "ecrti.o ecrtn.o ncrti.o ncrtn.o" else "crti.o crtn.o"; # Normally, `SHLIB_LC` is set to `-lc`, which means that # `libgcc_s.so` cannot be built until `libc.so` is available. @@ -28,7 +28,7 @@ let # gcc-built `{e,n}crt{n,i}.o` instead of failing to find the # versions which have been repackaged in libc as `crt{n,i}.o` # - SHLIB_LC = lib.optionalString stdenv.targetPlatform.isPower "-mnewlib"; + SHLIB_LC = lib.optionalString stdenv.targetPlatform.isPower64 "-mnewlib"; in '' @@ -47,11 +47,14 @@ in # https://www.openwall.com/lists/musl/2022/11/09/3 # # 'parsed.cpu.family' won't be correct for every platform. -+ - lib.optionalString - ( - stdenv.targetPlatform.isLoongArch64 || stdenv.targetPlatform.isS390 || stdenv.targetPlatform.isAlpha - ) - '' - touch libgcc/config/${stdenv.targetPlatform.parsed.cpu.family}/crt{i,n}.S - '' ++ (lib.optionalString + ( + stdenv.targetPlatform.isLoongArch64 || stdenv.targetPlatform.isS390 || stdenv.targetPlatform.isAlpha + ) + '' + touch libgcc/config/${stdenv.targetPlatform.parsed.cpu.family}/crt{i,n}.S + '' +) ++ lib.optionalString (stdenv.targetPlatform.isPower && !stdenv.targetPlatform.isPower64) '' + touch libgcc/config/rs6000/crt{i,n}.S +''