summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
authorCrystalGamma <github@crystalgamma.de>2018-08-21 21:31:34 +0200
committerJohn Ericson <mail@JohnEricson.me>2018-08-21 15:31:34 -0400
commit72d161f548701a2a8dab334dee76b63bccc0f07c (patch)
treeb7e2e8d922684bd5b7c3d269454a0a8145a44e46 /pkgs/os-specific/linux
parentcb44c3ff4cf2c15c7e870df482126bd09ce46588 (diff)
downloadnixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.tar
nixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.tar.gz
nixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.tar.bz2
nixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.tar.lz
nixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.tar.xz
nixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.tar.zst
nixpkgs-72d161f548701a2a8dab334dee76b63bccc0f07c.zip
[RFC] ppc64le enablement (#45340)
* ppc64le enablement

* gcc, glibc: properly handle __float128

* lib/systems, stdenv: syntax cleanup

* gcc7: remove ugly hack

* gcc: add/update __float128 flags

* stdenv: add another pair of quotes for consistency

* gcc: move __float128 flag for ppc64le-glibc into common/platform-flags.nix
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix10
-rw-r--r--pkgs/os-specific/linux/musl/default.nix5
2 files changed, 10 insertions, 5 deletions
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 80721c4b401..33aa22abaf2 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -98,6 +98,7 @@ let
             sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g ; s|/sbin/||g'
         done
         sed -i Makefile -e 's|= depmod|= ${buildPackages.kmod}/bin/depmod|'
+        sed -i scripts/ld-version.sh -e "s|/usr/bin/awk|${buildPackages.gawk}/bin/awk|"
       '';
 
       configurePhase = ''
@@ -145,9 +146,12 @@ let
       ++ optional installsFirmware "INSTALL_FW_PATH=$(out)/lib/firmware";
 
       # Some image types need special install targets (e.g. uImage is installed with make uinstall)
-      installTargets = [ (if platform.kernelTarget == "uImage" then "uinstall" else
-                          if platform.kernelTarget == "zImage" || platform.kernelTarget == "Image.gz" then "zinstall" else
-                          "install") ];
+      installTargets = [ (
+        if platform ? kernelInstallTarget then platform.kernelInstallTarget
+        else if platform.kernelTarget == "uImage" then "uinstall"
+        else if platform.kernelTarget == "zImage" || platform.kernelTarget == "Image.gz" then "zinstall"
+        else "install"
+      ) ];
 
       postInstall = (optionalString installsFirmware ''
         mkdir -p $out/lib/firmware
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
index d6936ccd650..e586539db08 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl
+{ stdenv, lib, fetchurl, hostPlatform
 , linuxHeaders ? null
 , useBSDCompatHeaders ? true
 }:
@@ -61,11 +61,12 @@ stdenv.mkDerivation rec {
     configureFlagsArray+=("--syslibdir=$out/lib")
   '';
 
+  CFLAGS="-fstack-protector-strong" + lib.optionalString hostPlatform.isPower " -mlong-double-64";
+
   configureFlags = [
     "--enable-shared"
     "--enable-static"
     "--enable-debug"
-    "CFLAGS=-fstack-protector-strong"
     "--enable-wrapper=all"
   ];