···476477 isoImage.squashfsCompression = mkOption {
478 default = with pkgs.stdenv.targetPlatform; "xz -Xdict-size 100% "
479+ + lib.optionalString isx86 "-Xbcj x86"
480 # Untested but should also reduce size for these platforms
481+ + lib.optionalString isAarch "-Xbcj arm"
482 + lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
483 + lib.optionalString (isSparc) "-Xbcj sparc";
484 description = ''
+1-1
nixos/modules/profiles/all-hardware.nix
···5758 # Hyper-V support.
59 "hv_storvsc"
60- ] ++ lib.optionals (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
61 # Most of the following falls into two categories:
62 # - early KMS / early display
63 # - early storage (e.g. USB) support
···5758 # Hyper-V support.
59 "hv_storvsc"
60+ ] ++ lib.optionals pkgs.stdenv.hostPlatform.isAarch [
61 # Most of the following falls into two categories:
62 # - early KMS / early display
63 # - early storage (e.g. USB) support
···92 "default_config"
93 "met"
94 "esphome"
95- ] ++ optionals (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) [
96 # Use the platform as an indicator that we might be running on a RaspberryPi and include
97 # relevant components
98 "rpi_power"
···92 "default_config"
93 "met"
94 "esphome"
95+ ] ++ optionals pkgs.stdenv.hostPlatform.isAarch [
96 # Use the platform as an indicator that we might be running on a RaspberryPi and include
97 # relevant components
98 "rpi_power"
···1# ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
2#
3-# This extension is applied to all haskell package sets in nixpkgs
4-# if `stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64`
5-# to apply arm specific workarounds or fixes.
6#
7# The file is split into three parts:
8#
···1# ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
2#
3+# This extension is applied to all haskell package sets in nixpkgs if
4+# `stdenv.hostPlatform.isAarch` to apply arm specific workarounds or
5+# fixes.
6#
7# The file is split into three parts:
8#
···30 # emulating build_all.sh configuration variables
31 jplatform =
32 if stdenv.isDarwin then "darwin"
33- else if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry"
34 else if stdenv.isLinux then "linux"
35 else "unsupported";
36
···30 # emulating build_all.sh configuration variables
31 jplatform =
32 if stdenv.isDarwin then "darwin"
33+ else if stdenv.hostPlatform.isAarch then "raspberry"
34 else if stdenv.isLinux then "linux"
35 else "unsupported";
36
···29 nativeBuildInputs = [ autoreconfHook ];
3031 # tcmalloc uses libunwind in a way that works correctly only on non-ARM linux
32- buildInputs = lib.optional (stdenv.isLinux && !(stdenv.isAarch64 || stdenv.isAarch32)) libunwind;
3334 # Disable general dynamic TLS on AArch to support dlopen()'ing the library:
35 # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
36- configureFlags = lib.optional (stdenv.isAarch32 || stdenv.isAarch64)
37 "--disable-general-dynamic-tls";
3839 prePatch = lib.optionalString stdenv.isDarwin ''
···29 nativeBuildInputs = [ autoreconfHook ];
3031 # tcmalloc uses libunwind in a way that works correctly only on non-ARM linux
32+ buildInputs = lib.optional (stdenv.isLinux && !stdenv.hostPlatform.isAarch) libunwind;
3334 # Disable general dynamic TLS on AArch to support dlopen()'ing the library:
35 # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
36+ configureFlags = lib.optional stdenv.hostPlatform.isAarch
37 "--disable-general-dynamic-tls";
3839 prePatch = lib.optionalString stdenv.isDarwin ''
···29 preConfigure = lib.optionalString (stdenv.buildPlatform.isx86_64 || stdenv.hostPlatform.isi686) ''
30 # `AS' is set to the binutils assembler, but we need nasm
31 unset AS
32- '' + lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) ''
33 export AS=$CC
34 '';
35
···29 preConfigure = lib.optionalString (stdenv.buildPlatform.isx86_64 || stdenv.hostPlatform.isi686) ''
30 # `AS' is set to the binutils assembler, but we need nasm
31 unset AS
32+ '' + lib.optionalString stdenv.hostPlatform.isAarch ''
33 export AS=$CC
34 '';
35
···2930 # Tests fail due to numeric precision differences on ARM
31 # See https://github.com/SethMMorton/fastnumbers/issues/28
32- doCheck = !(stdenv.isAarch64 || stdenv.isAarch32);
3334 checkInputs = [
35 hypothesis
···2930 # Tests fail due to numeric precision differences on ARM
31 # See https://github.com/SethMMorton/fastnumbers/issues/28
32+ doCheck = !stdenv.hostPlatform.isAarch;
3334 checkInputs = [
35 hypothesis
···48 # Depend on pyopenssl
49 "--deselect tests/test_tcp.py::Test_UV_TCPSSL::test_flush_before_shutdown"
50 "--deselect tests/test_tcp.py::Test_UV_TCPSSL::test_renegotiation"
51- ] ++ lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) [
52 # test gets stuck in epoll_pwait on hydras aarch64 builders
53 # https://github.com/MagicStack/uvloop/issues/412
54 "--deselect tests/test_tcp.py::Test_AIO_TCPSSL::test_remote_shutdown_receives_trailing_data"
···48 # Depend on pyopenssl
49 "--deselect tests/test_tcp.py::Test_UV_TCPSSL::test_flush_before_shutdown"
50 "--deselect tests/test_tcp.py::Test_UV_TCPSSL::test_renegotiation"
51+ ] ++ lib.optionals stdenv.hostPlatform.isAarch [
52 # test gets stuck in epoll_pwait on hydras aarch64 builders
53 # https://github.com/MagicStack/uvloop/issues/412
54 "--deselect tests/test_tcp.py::Test_AIO_TCPSSL::test_remote_shutdown_receives_trailing_data"
+1-1
pkgs/games/gemrb/default.nix
···18let
19 # the GLES backend on rpi is untested as I don't have the hardware
20 backend =
21- if (stdenv.isx86_32 || stdenv.isx86_64) then "OpenGL" else "GLES";
2223 withVLC = stdenv.isDarwin;
24
···18let
19 # the GLES backend on rpi is untested as I don't have the hardware
20 backend =
21+ if stdenv.hostPlatform.isx86 then "OpenGL" else "GLES";
2223 withVLC = stdenv.isDarwin;
24
+1-1
pkgs/misc/screensavers/xscreensaver/default.nix
···39 ];
4041 # "marbling" has NEON code that mixes signed and unsigned vector types
42- NIX_CFLAGS_COMPILE = lib.optional (with stdenv.hostPlatform; isAarch64 || isAarch32) "-flax-vector-conversions";
4344 postInstall = ''
45 for bin in $out/bin/*; do
···39 ];
4041 # "marbling" has NEON code that mixes signed and unsigned vector types
42+ NIX_CFLAGS_COMPILE = lib.optional stdenv.hostPlatform.isAarch "-flax-vector-conversions";
4344 postInstall = ''
45 for bin in $out/bin/*; do
+2-2
pkgs/os-specific/linux/nmon/default.nix
···13 dontUnpack = true;
14 buildPhase = "${stdenv.cc.targetPrefix}cc -o nmon ${src} -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -lm -g -D ${
15 with stdenv.targetPlatform;
16- if isx86_32 || isx86_64 then "X86"
17- else if isAarch32 || isAarch64 then "ARM"
18 else if isPower then "POWER"
19 else "UNKNOWN"
20 }";
···13 dontUnpack = true;
14 buildPhase = "${stdenv.cc.targetPrefix}cc -o nmon ${src} -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -lm -g -D ${
15 with stdenv.targetPlatform;
16+ if isx86 then "X86"
17+ else if isAarch then "ARM"
18 else if isPower then "POWER"
19 else "UNKNOWN"
20 }";
···108 # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
109 # the oldest ghc with aarch64-darwin support is 8.10.5
110 # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
111- if stdenv.isAarch64 || stdenv.isAarch32 then
112 packages.ghc8107BinaryMinimal
113 else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
114 # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
···127 bootPkgs =
128 # aarch64 ghc8107Binary exceeds max output size on hydra
129 # the oldest ghc with aarch64-darwin support is 8.10.5
130- if stdenv.isAarch64 || stdenv.isAarch32 then
131 packages.ghc8107BinaryMinimal
132 else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
133 packages.ghc8107
···141 ghc923 = callPackage ../development/compilers/ghc/9.2.3.nix {
142 bootPkgs =
143 # aarch64 ghc8107Binary exceeds max output size on hydra
144- if stdenv.isAarch64 || stdenv.isAarch32 then
145 packages.ghc8107BinaryMinimal
146 else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
147 packages.ghc8107
···108 # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
109 # the oldest ghc with aarch64-darwin support is 8.10.5
110 # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
111+ if stdenv.hostPlatform.isAarch then
112 packages.ghc8107BinaryMinimal
113 else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
114 # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
···127 bootPkgs =
128 # aarch64 ghc8107Binary exceeds max output size on hydra
129 # the oldest ghc with aarch64-darwin support is 8.10.5
130+ if stdenv.hostPlatform.isAarch then
131 packages.ghc8107BinaryMinimal
132 else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
133 packages.ghc8107
···141 ghc923 = callPackage ../development/compilers/ghc/9.2.3.nix {
142 bootPkgs =
143 # aarch64 ghc8107Binary exceeds max output size on hydra
144+ if stdenv.hostPlatform.isAarch then
145 packages.ghc8107BinaryMinimal
146 else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
147 packages.ghc8107