Home / Input Output / haskell.nix
Apr 07, 8-9 PM (0)
Apr 07, 9-10 PM (0)
Apr 07, 10-11 PM (0)
Apr 07, 11-12 AM (0)
Apr 08, 12-1 AM (2)
Apr 08, 1-2 AM (0)
Apr 08, 2-3 AM (2)
Apr 08, 3-4 AM (1)
Apr 08, 4-5 AM (0)
Apr 08, 5-6 AM (0)
Apr 08, 6-7 AM (0)
Apr 08, 7-8 AM (0)
Apr 08, 8-9 AM (0)
Apr 08, 9-10 AM (1)
Apr 08, 10-11 AM (0)
Apr 08, 11-12 PM (0)
Apr 08, 12-1 PM (0)
Apr 08, 1-2 PM (0)
Apr 08, 2-3 PM (0)
Apr 08, 3-4 PM (0)
Apr 08, 4-5 PM (0)
Apr 08, 5-6 PM (0)
Apr 08, 6-7 PM (0)
Apr 08, 7-8 PM (0)
Apr 08, 8-9 PM (0)
Apr 08, 9-10 PM (0)
Apr 08, 10-11 PM (0)
Apr 08, 11-12 AM (1)
Apr 09, 12-1 AM (0)
Apr 09, 1-2 AM (0)
Apr 09, 2-3 AM (0)
Apr 09, 3-4 AM (1)
Apr 09, 4-5 AM (0)
Apr 09, 5-6 AM (0)
Apr 09, 6-7 AM (0)
Apr 09, 7-8 AM (1)
Apr 09, 8-9 AM (0)
Apr 09, 9-10 AM (0)
Apr 09, 10-11 AM (3)
Apr 09, 11-12 PM (0)
Apr 09, 12-1 PM (0)
Apr 09, 1-2 PM (0)
Apr 09, 2-3 PM (0)
Apr 09, 3-4 PM (0)
Apr 09, 4-5 PM (0)
Apr 09, 5-6 PM (0)
Apr 09, 6-7 PM (0)
Apr 09, 7-8 PM (0)
Apr 09, 8-9 PM (0)
Apr 09, 9-10 PM (0)
Apr 09, 10-11 PM (0)
Apr 09, 11-12 AM (0)
Apr 10, 12-1 AM (1)
Apr 10, 1-2 AM (0)
Apr 10, 2-3 AM (0)
Apr 10, 3-4 AM (0)
Apr 10, 4-5 AM (0)
Apr 10, 5-6 AM (0)
Apr 10, 6-7 AM (0)
Apr 10, 7-8 AM (0)
Apr 10, 8-9 AM (0)
Apr 10, 9-10 AM (0)
Apr 10, 10-11 AM (0)
Apr 10, 11-12 PM (0)
Apr 10, 12-1 PM (0)
Apr 10, 1-2 PM (0)
Apr 10, 2-3 PM (0)
Apr 10, 3-4 PM (0)
Apr 10, 4-5 PM (0)
Apr 10, 5-6 PM (0)
Apr 10, 6-7 PM (0)
Apr 10, 7-8 PM (0)
Apr 10, 8-9 PM (0)
Apr 10, 9-10 PM (0)
Apr 10, 10-11 PM (0)
Apr 10, 11-12 AM (0)
Apr 11, 12-1 AM (1)
Apr 11, 1-2 AM (0)
Apr 11, 2-3 AM (0)
Apr 11, 3-4 AM (0)
Apr 11, 4-5 AM (0)
Apr 11, 5-6 AM (0)
Apr 11, 6-7 AM (0)
Apr 11, 7-8 AM (0)
Apr 11, 8-9 AM (0)
Apr 11, 9-10 AM (0)
Apr 11, 10-11 AM (0)
Apr 11, 11-12 PM (0)
Apr 11, 12-1 PM (0)
Apr 11, 1-2 PM (0)
Apr 11, 2-3 PM (0)
Apr 11, 3-4 PM (0)
Apr 11, 4-5 PM (0)
Apr 11, 5-6 PM (0)
Apr 11, 6-7 PM (0)
Apr 11, 7-8 PM (0)
Apr 11, 8-9 PM (0)
Apr 11, 9-10 PM (0)
Apr 11, 10-11 PM (0)
Apr 11, 11-12 AM (0)
Apr 12, 12-1 AM (1)
Apr 12, 1-2 AM (0)
Apr 12, 2-3 AM (0)
Apr 12, 3-4 AM (0)
Apr 12, 4-5 AM (0)
Apr 12, 5-6 AM (0)
Apr 12, 6-7 AM (0)
Apr 12, 7-8 AM (0)
Apr 12, 8-9 AM (0)
Apr 12, 9-10 AM (0)
Apr 12, 10-11 AM (0)
Apr 12, 11-12 PM (0)
Apr 12, 12-1 PM (0)
Apr 12, 1-2 PM (0)
Apr 12, 2-3 PM (0)
Apr 12, 3-4 PM (0)
Apr 12, 4-5 PM (0)
Apr 12, 5-6 PM (0)
Apr 12, 6-7 PM (0)
Apr 12, 7-8 PM (0)
Apr 12, 8-9 PM (0)
Apr 12, 9-10 PM (0)
Apr 12, 10-11 PM (0)
Apr 12, 11-12 AM (0)
Apr 13, 12-1 AM (1)
Apr 13, 1-2 AM (0)
Apr 13, 2-3 AM (0)
Apr 13, 3-4 AM (0)
Apr 13, 4-5 AM (0)
Apr 13, 5-6 AM (0)
Apr 13, 6-7 AM (2)
Apr 13, 7-8 AM (0)
Apr 13, 8-9 AM (0)
Apr 13, 9-10 AM (0)
Apr 13, 10-11 AM (2)
Apr 13, 11-12 PM (0)
Apr 13, 12-1 PM (0)
Apr 13, 1-2 PM (0)
Apr 13, 2-3 PM (0)
Apr 13, 3-4 PM (0)
Apr 13, 4-5 PM (0)
Apr 13, 5-6 PM (0)
Apr 13, 6-7 PM (0)
Apr 13, 7-8 PM (0)
Apr 13, 8-9 PM (0)
Apr 13, 9-10 PM (0)
Apr 13, 10-11 PM (0)
Apr 13, 11-12 AM (0)
Apr 14, 12-1 AM (1)
Apr 14, 1-2 AM (0)
Apr 14, 2-3 AM (2)
Apr 14, 3-4 AM (0)
Apr 14, 4-5 AM (0)
Apr 14, 5-6 AM (0)
Apr 14, 6-7 AM (0)
Apr 14, 7-8 AM (0)
Apr 14, 8-9 AM (0)
Apr 14, 9-10 AM (0)
Apr 14, 10-11 AM (1)
Apr 14, 11-12 PM (0)
Apr 14, 12-1 PM (0)
Apr 14, 1-2 PM (0)
Apr 14, 2-3 PM (0)
Apr 14, 3-4 PM (0)
Apr 14, 4-5 PM (0)
Apr 14, 5-6 PM (0)
Apr 14, 6-7 PM (0)
Apr 14, 7-8 PM (0)
Apr 14, 8-9 PM (0)
24 commits this week Apr 07, 2026 - Apr 14, 2026
Remove deprecated 'pie' hardening flag for musl builds
nixpkgs 26.05 removed 'pie' from the hardening system entirely -- PIE
is now enabled by default in compilers. Any mention of 'pie' in either
hardeningEnable or hardeningDisable triggers a deprecation warning:

  "The 'pie' hardening flag has been removed in favor of enabling PIE
   by default in compilers and should no longer be used."

This causes ~68 warnings per evaluation for projects with musl
cross-compilation, which is every haskell.nix project using
crossPlatforms with musl64 or aarch64-multiplatform-musl.

Remove the two places where 'pie' was added to hardeningDisable:
- builder/comp-builder.nix: every Haskell component on musl
- compiler/ghc/default.nix: GHC itself on musl targets
Update nixpkgs-unstable and nixpkgs-2511, fix deprecation warnings
Update nixpkgs-unstable and nixpkgs-2511 pins and fix the resulting
evaluation warnings for deprecated package names. Uses
backwards-compatible fallback patterns so older nixpkgs still works:

- Replace xorg.* references with (pkgs.newName or pkgs.xorg.oldName)
- Add xorgCompat set in pkgconf-nixpkgs-map.nix to map deprecated
  xorg attribute names to their new top-level equivalents
- Update renamed packages (enchant2, unixODBC, goocanvas, etc.)
  using a prefer helper that selects the new name when available
Add linker pool allocator for aarch64 under qemu (cf GHC #24432)
When running the GHC RTS linker under qemu user-mode emulation,
mmap hint addresses are ignored, causing allocations to scatter
across the address space. This leads to ADR_GOT_PAGE relocation
overflow (±4GB range exceeded) on aarch64.

This patch pre-allocates a single contiguous 512MB RWX pool and
sub-allocates from it for all linker needs: sections, GOT, BSS,
and COMMON symbols. The pool is split into RW (growing down) and
RX (growing up) halves, guaranteeing all allocations stay close.

Also fixes GOT slot allocation for STB_LOCAL symbols (e.g.
approx_tab in Android NDK's libm.a) which have GOT-relative
relocations but were not assigned GOT slots.

Applied to GHC 9.6.7, 9.8.3+, 9.10.2+ (versions that already use
m32 for regular sections but missed BSS, COMMON, and GOT).

Enables android and aarch64-cross TH tests (annotations,
js-template-haskell, th-dlls) that were previously disabled due to
iserv hanging under qemu.
Add GHC 9.12.4 (#2490)
* Add GHC 9.12.4

- Add ghc-9.12.4-iog branch on stable-haskell/ghc from release tag
- Add lazy-inputs/ghc9124 flake input
- Add ghc9124 compiler definition in bootstrap.nix
- Update latestVerMap to default 9.12 series to 9.12.4
- Add ghc9124 to ghc9141 bootstrap fallback chain
- Create ghc-9.12.4-Cabal-3.14.patch (adapted for 9.12.4 changes
  in utils/genprimopcode/Main.hs)
- Exclude ghc-16bit-elf-section-header-overflow.patch from 9.12.4+
  (already upstreamed)

* Bump head.hackage

* Fix android iserv-proxy-interpreter: link -ldl and update head.hackage hash

The GHC RTS references dlopen/dlclose/dlsym/dlerror even with
-dynamic-system-linker disabled. Add -ldl to the android
iserv-proxy-interpreter linker flags to resolve undefined symbols.

Also update the head.hackage repository hash in test/cabal.project.local.

* Use stdio pipes for iserv-proxy, enable Windows TH tests

Replace TCP socket communication between iserv-proxy and the
interpreter with stdin/stdout pipes (--pipe/--stdio modes). TCP
networking inside nix-linux-builder VMs is unreliable, causing iserv
to hang during Template Haskell evaluation.

The proxy now spawns the interpreter as a subprocess and communicates
via its stdin/stdout, bypassing TCP entirely. The old TCP mode is
preserved for backward compatibility.

Also:
- Add -optl-ldl to android ghcOptions (GHC RTS references dlopen even
  with -dynamic-system-linker disabled)
- Enable TH tests (annotations, th-dlls, th-dlls-minimal,
  js-template-haskell) for ucrt64 Windows cross-compilation
- Disable mingwW64 (msvcrt) due to Rosetta wine crash
- Android TH tests remain disabled pending linker pool patch

* Extend Windows DLL symbol type fix to GHC 9.14+

The ghc-9.10-windows-dll-dependent-symbol-type-fix.patch was not applied
to GHC 9.14.1, but the fix was never upstreamed. This caused FFI calls
to C DLLs to crash in the iserv interpreter during TH evaluation
(th-dlls-minimal test). Remove the upper version bound so it applies to
all GHC versions from 9.4 onwards.

* Fix cabal-simple-prof android -ldl and add stack resolver for ghc9124

- Add --ghc-option=-optl-ldl to cabal-simple-prof android override
  (same fix as iserv-proxy-interpreter for missing dlopen symbols)
- Add stack-ghc9124.yaml resolver for ghc-lib-reinstallable test
Use stdio pipes for iserv-proxy, enable Windows TH tests
Replace TCP socket communication between iserv-proxy and the
interpreter with stdin/stdout pipes (--pipe/--stdio modes). TCP
networking inside nix-linux-builder VMs is unreliable, causing iserv
to hang during Template Haskell evaluation.

The proxy now spawns the interpreter as a subprocess and communicates
via its stdin/stdout, bypassing TCP entirely. The old TCP mode is
preserved for backward compatibility.

Also:
- Add -optl-ldl to android ghcOptions (GHC RTS references dlopen even
  with -dynamic-system-linker disabled)
- Enable TH tests (annotations, th-dlls, th-dlls-minimal,
  js-template-haskell) for ucrt64 Windows cross-compilation
- Disable mingwW64 (msvcrt) due to Rosetta wine crash
- Android TH tests remain disabled pending linker pool patch