From 4bdcddf9aac73d1ca1ace4eb26c14af18c1b0a31 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 31 Dec 2020 00:19:10 -0600 Subject: gcc: allow stripping gcc libraries When cross compiling to the same kernel / arch combination, it is safe to use strip of libraries. This happens when cross-compiling musl programs. dontStrip is now set in each gcc compiler instead of in gcc/builder.sh. Fixes #75476 --- pkgs/development/compilers/gcc/10/default.nix | 4 ++-- pkgs/development/compilers/gcc/6/default.nix | 4 ++-- pkgs/development/compilers/gcc/7/default.nix | 4 ++-- pkgs/development/compilers/gcc/8/default.nix | 4 ++-- pkgs/development/compilers/gcc/9/default.nix | 4 ++-- pkgs/development/compilers/gcc/builder.sh | 6 +++--- 6 files changed, 13 insertions(+), 13 deletions(-) (limited to 'pkgs') diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index c31e7c426e02..ecbe7c9eb4b9 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -28,8 +28,8 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , # Strip kills static libs of other archs (hence no cross) - stripped ? stdenv.hostPlatform == stdenv.buildPlatform - && stdenv.targetPlatform == stdenv.hostPlatform + stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system + && stdenv.targetPlatform.system == stdenv.hostPlatform.system , gnused ? null , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index 908f7e0f699f..ed97e6a0ce87 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -36,8 +36,8 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , # Strip kills static libs of other archs (hence no cross) - stripped ? stdenv.hostPlatform == stdenv.buildPlatform - && stdenv.targetPlatform == stdenv.hostPlatform + stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system + && stdenv.targetPlatform.system == stdenv.hostPlatform.system , gnused ? null , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index d950d6ac35bb..4bd776e6f8b8 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -26,8 +26,8 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , # Strip kills static libs of other archs (hence no cross) - stripped ? stdenv.hostPlatform == stdenv.buildPlatform - && stdenv.targetPlatform == stdenv.hostPlatform + stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system + && stdenv.targetPlatform.system == stdenv.hostPlatform.system , gnused ? null , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index 683a9edfe09d..d9234a75530f 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -26,8 +26,8 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , # Strip kills static libs of other archs (hence no cross) - stripped ? stdenv.hostPlatform == stdenv.buildPlatform - && stdenv.targetPlatform == stdenv.hostPlatform + stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system + && stdenv.targetPlatform.system == stdenv.hostPlatform.system , gnused ? null , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix index 7827cb985053..40af21a1fa3f 100644 --- a/pkgs/development/compilers/gcc/9/default.nix +++ b/pkgs/development/compilers/gcc/9/default.nix @@ -29,8 +29,8 @@ , threadsCross ? null # for MinGW , crossStageStatic ? false , # Strip kills static libs of other archs (hence no cross) - stripped ? stdenv.hostPlatform == stdenv.buildPlatform - && stdenv.targetPlatform == stdenv.hostPlatform + stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system + && stdenv.targetPlatform.system == stdenv.hostPlatform.system , gnused ? null , cloog # unused; just for compat with gcc4, as we override the parameter on some places , buildPackages diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index 7d104b96624e..e6d41d7b29ab 100644 --- a/pkgs/development/compilers/gcc/builder.sh +++ b/pkgs/development/compilers/gcc/builder.sh @@ -147,9 +147,9 @@ if test "$noSysDirs" = "1"; then fi fi -if test -n "${targetConfig-}"; then - # The host strip will destroy some important details of the objects - dontStrip=1 +if [ -n "${targetConfig-}" ]; then + # if stripping gcc, include target directory too + stripDebugList="${stripDebugList-lib lib32 lib64 libexec bin sbin} $targetConfig" fi eval "$oldOpts" -- cgit v1.2.3