2021-05-08 13:55:59 +02:00
|
|
|
# ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
|
|
|
|
#
|
|
|
|
# This extension is applied to all haskell package sets in nixpkgs
|
|
|
|
# if `stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64`
|
|
|
|
# to apply arm specific workarounds or fixes.
|
|
|
|
#
|
|
|
|
# The file is split into three parts:
|
|
|
|
#
|
|
|
|
# * Overrides that are applied for all arm platforms
|
|
|
|
# * Overrides for aarch32 platforms
|
|
|
|
# * Overrides for aarch64 platforms
|
|
|
|
#
|
|
|
|
# This may be extended in the future to also include compiler-
|
|
|
|
# specific sections as compiler and linker related bugs may
|
|
|
|
# get fixed subsequently.
|
|
|
|
#
|
|
|
|
# When adding new overrides, try to research which section they
|
|
|
|
# belong into. Most likely we'll be favouring aarch64 overrides
|
|
|
|
# in practice since that is the only platform we can test on
|
|
|
|
# Hydra. Also take care to group overrides by the issue they
|
|
|
|
# solve, so refactors and updates to this file are less tedious.
|
|
|
|
{ pkgs, haskellLib }:
|
|
|
|
|
|
|
|
let
|
|
|
|
inherit (pkgs) lib;
|
|
|
|
in
|
|
|
|
|
|
|
|
with haskellLib;
|
|
|
|
|
|
|
|
self: super: {
|
|
|
|
# COMMON ARM OVERRIDES
|
|
|
|
|
|
|
|
# moved here from configuration-common.nix, no reason given.
|
|
|
|
servant-docs = dontCheck super.servant-docs;
|
|
|
|
swagger2 = dontHaddock (dontCheck super.swagger2);
|
|
|
|
|
|
|
|
# Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
|
|
|
|
happy = dontCheck super.happy;
|
|
|
|
|
|
|
|
} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
|
|
|
|
# AARCH64-SPECIFIC OVERRIDES
|
|
|
|
|
|
|
|
# Doctests fail on aarch64 due to a GHCi linking bug
|
|
|
|
# https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437
|
|
|
|
# TODO: figure out if needed on aarch32 as well
|
|
|
|
BNFC = dontCheck super.BNFC;
|
|
|
|
C-structs = dontCheck super.C-structs;
|
2021-08-05 08:29:07 +02:00
|
|
|
Chart-tests = dontCheck super.Chart-tests;
|
2021-08-05 08:35:07 +02:00
|
|
|
Jikka = dontCheck super.Jikka;
|
2021-05-08 13:55:59 +02:00
|
|
|
accelerate = dontCheck super.accelerate;
|
2021-06-21 04:58:38 +02:00
|
|
|
ad = dontCheck super.ad;
|
2021-05-08 13:55:59 +02:00
|
|
|
autoapply = dontCheck super.autoapply;
|
2021-06-21 04:58:38 +02:00
|
|
|
construct = dontCheck super.construct;
|
|
|
|
exact-real = dontCheck super.exact-real;
|
|
|
|
flight-kml = dontCheck super.flight-kml;
|
|
|
|
focuslist = dontCheck super.focuslist;
|
|
|
|
grammatical-parsers = dontCheck super.grammatical-parsers;
|
|
|
|
greskell = dontCheck super.greskell;
|
|
|
|
groupBy = dontCheck super.groupBy;
|
2021-05-08 13:55:59 +02:00
|
|
|
haskell-time-range = dontCheck super.haskell-time-range;
|
2021-06-21 04:58:38 +02:00
|
|
|
headroom = dontCheck super.headroom;
|
|
|
|
hgeometry = dontCheck super.hgeometry;
|
|
|
|
hhp = dontCheck super.hhp;
|
|
|
|
hint = dontCheck super.hint;
|
|
|
|
hls-splice-plugin = dontCheck super.hls-splice-plugin;
|
2021-05-08 13:55:59 +02:00
|
|
|
hsakamai = dontCheck super.hsakamai;
|
|
|
|
hsemail-ns = dontCheck super.hsemail-ns;
|
2021-05-18 16:59:23 +02:00
|
|
|
html-validator-cli = dontCheck super.html-validator-cli;
|
|
|
|
hw-fingertree-strict = dontCheck super.hw-fingertree-strict;
|
2021-05-18 18:07:12 +02:00
|
|
|
hw-packed-vector = dontCheck super.hw-packed-vector;
|
2021-06-21 04:58:38 +02:00
|
|
|
hw-prim = dontCheck super.hw-prim;
|
2021-05-18 18:07:12 +02:00
|
|
|
hw-xml = dontCheck super.hw-xml;
|
2021-06-21 04:58:38 +02:00
|
|
|
language-nix = dontCheck super.language-nix;
|
2021-05-18 16:59:23 +02:00
|
|
|
lens-regex = dontCheck super.lens-regex;
|
|
|
|
meep = dontCheck super.meep;
|
2021-06-21 04:58:38 +02:00
|
|
|
openapi3 = dontCheck super.openapi3;
|
|
|
|
orbits = dontCheck super.orbits;
|
2021-05-18 16:59:23 +02:00
|
|
|
ranged-list = dontCheck super.ranged-list;
|
|
|
|
rank2classes = dontCheck super.rank2classes;
|
|
|
|
schedule = dontCheck super.schedule;
|
2021-06-21 04:58:38 +02:00
|
|
|
static = dontCheck super.static;
|
|
|
|
strict-writer = dontCheck super.strict-writer;
|
2021-06-21 04:59:52 +02:00
|
|
|
termonad = dontCheck super.termonad;
|
2021-06-21 04:58:38 +02:00
|
|
|
trifecta = dontCheck super.trifecta;
|
2021-05-18 16:59:23 +02:00
|
|
|
twiml = dontCheck super.twiml;
|
|
|
|
twitter-conduit = dontCheck super.twitter-conduit;
|
|
|
|
validationt = dontCheck super.validationt;
|
|
|
|
vgrep = dontCheck super.vgrep;
|
2021-06-21 04:58:38 +02:00
|
|
|
vinyl = dontCheck super.vinyl;
|
2021-05-18 16:59:23 +02:00
|
|
|
vulkan-utils = dontCheck super.vulkan-utils;
|
2021-06-21 04:58:38 +02:00
|
|
|
xml-html-qq = dontCheck super.xml-html-qq;
|
2021-05-18 16:59:23 +02:00
|
|
|
yaml-combinators = dontCheck super.yaml-combinators;
|
|
|
|
yesod-paginator = dontCheck super.yesod-paginator;
|
2021-05-08 13:55:59 +02:00
|
|
|
|
|
|
|
# https://github.com/ekmett/half/issues/35
|
|
|
|
half = dontCheck super.half;
|
|
|
|
|
2021-08-06 15:56:26 +02:00
|
|
|
# We disable profiling on aarch64, so tests naturally fail
|
|
|
|
ghc-prof = dontCheck super.ghc-prof;
|
|
|
|
|
2021-05-08 13:55:59 +02:00
|
|
|
} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 {
|
|
|
|
# AARCH32-SPECIFIC OVERRIDES
|
|
|
|
|
|
|
|
}
|