Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at staging-python 122 lines 4.9 kB view raw
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# 9# * Overrides that are applied for all arm platforms 10# * Overrides for aarch32 platforms 11# * Overrides for aarch64 platforms 12# 13# This may be extended in the future to also include compiler- 14# specific sections as compiler and linker related bugs may 15# get fixed subsequently. 16# 17# When adding new overrides, try to research which section they 18# belong into. Most likely we'll be favouring aarch64 overrides 19# in practice since that is the only platform we can test on 20# Hydra. Also take care to group overrides by the issue they 21# solve, so refactors and updates to this file are less tedious. 22{ pkgs, haskellLib }: 23 24let 25 inherit (pkgs) lib; 26in 27 28with haskellLib; 29 30self: super: { 31 # COMMON ARM OVERRIDES 32 33 # moved here from configuration-common.nix, no reason given. 34 servant-docs = dontCheck super.servant-docs; 35 swagger2 = dontHaddock (dontCheck super.swagger2); 36 37 # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062 38 happy = dontCheck super.happy; 39 happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12); 40 41} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 { 42 # AARCH64-SPECIFIC OVERRIDES 43 44 # Doctests fail on aarch64 due to a GHCi linking bug 45 # https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437 46 # TODO: figure out if needed on aarch32 as well 47 BNFC = dontCheck super.BNFC; 48 C-structs = dontCheck super.C-structs; 49 Chart-tests = dontCheck super.Chart-tests; 50 Jikka = dontCheck super.Jikka; 51 accelerate = dontCheck super.accelerate; 52 ad = dontCheck super.ad; 53 autoapply = dontCheck super.autoapply; 54 construct = dontCheck super.construct; 55 exact-real = dontCheck super.exact-real; 56 flight-kml = dontCheck super.flight-kml; 57 focuslist = dontCheck super.focuslist; 58 grammatical-parsers = dontCheck super.grammatical-parsers; 59 greskell = dontCheck super.greskell; 60 groupBy = dontCheck super.groupBy; 61 haskell-time-range = dontCheck super.haskell-time-range; 62 headroom = dontCheck super.headroom; 63 hgeometry = dontCheck super.hgeometry; 64 hhp = dontCheck super.hhp; 65 hls-splice-plugin = dontCheck super.hls-splice-plugin; 66 hsakamai = dontCheck super.hsakamai; 67 hsemail-ns = dontCheck super.hsemail-ns; 68 html-validator-cli = dontCheck super.html-validator-cli; 69 hw-fingertree-strict = dontCheck super.hw-fingertree-strict; 70 hw-packed-vector = dontCheck super.hw-packed-vector; 71 hw-prim = dontCheck super.hw-prim; 72 hw-xml = dontCheck super.hw-xml; 73 language-nix = dontCheck super.language-nix; 74 lens-regex = dontCheck super.lens-regex; 75 meep = dontCheck super.meep; 76 openapi3 = dontCheck super.openapi3; 77 orbits = dontCheck super.orbits; 78 ranged-list = dontCheck super.ranged-list; 79 rank2classes = dontCheck super.rank2classes; 80 schedule = dontCheck super.schedule; 81 static = dontCheck super.static; 82 strict-writer = dontCheck super.strict-writer; 83 termonad = dontCheck super.termonad; 84 trifecta = dontCheck super.trifecta; 85 twiml = dontCheck super.twiml; 86 twitter-conduit = dontCheck super.twitter-conduit; 87 validationt = dontCheck super.validationt; 88 vgrep = dontCheck super.vgrep; 89 vinyl = dontCheck super.vinyl; 90 vulkan-utils = dontCheck super.vulkan-utils; 91 xml-html-qq = dontCheck super.xml-html-qq; 92 yaml-combinators = dontCheck super.yaml-combinators; 93 yesod-paginator = dontCheck super.yesod-paginator; 94 hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin; 95 hls-call-hierarchy-plugin = dontCheck super.hls-call-hierarchy-plugin; 96 hls-module-name-plugin = dontCheck super.hls-module-name-plugin; 97 hls-brittany-plugin = dontCheck super.hls-brittany-plugin; 98 hls-qualify-imported-names-plugin = dontCheck super.hls-qualify-imported-names-plugin; 99 hls-class-plugin = dontCheck super.hls-class-plugin; 100 hls-selection-range-plugin = dontCheck super.hls-selection-range-plugin; 101 102 # https://github.com/ekmett/half/issues/35 103 half = dontCheck super.half; 104 105 # We disable profiling on aarch64, so tests naturally fail 106 ghc-prof = dontCheck super.ghc-prof; 107 108 # Similar RTS issue in test suite: 109 # rts/linker/elf_reloc_aarch64.c:98: encodeAddendAarch64: Assertion `isInt64(21+12, addend)' failed. 110 # These still fail sporadically on ghc 9.2 111 hls-ormolu-plugin = dontCheck super.hls-ormolu-plugin; 112 hls-haddock-comments-plugin = dontCheck super.hls-haddock-comments-plugin; 113 hls-rename-plugin = dontCheck super.hls-rename-plugin; 114 hls-fourmolu-plugin = dontCheck super.hls-fourmolu-plugin; 115 hls-floskell-plugin = dontCheck super.hls-floskell-plugin; 116} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 { 117 # AARCH32-SPECIFIC OVERRIDES 118 119 # KAT/ECB/D2 test segfaults on armv7l 120 # https://github.com/haskell-crypto/cryptonite/issues/367 121 cryptonite = dontCheck super.cryptonite; 122}