GHC musl docker manifests: lld as the default linker

After the update to alpine:3.22 (and LLVM 20), the int-native subtagged GHC musl docker manifests[1] for versions 9.10.2 and 9.12.2 use ld.lld (the LLVM linker) by default:

  • glcr.b-data.ch/ghc/ghc-musl:9.12.2-int-native
  • glcr.b-data.ch/ghc/ghc-musl:9.10.2-int-native

The manifests and images are also published on Quay and Docker Hub:

  • quay.io/benz0li/ghc-musl:9.12.2-int-native
  • docker.io/benz0li/ghc-musl:9.12.2-int-native
  • quay.io/benz0li/ghc-musl:9.10.2-int-native
  • docker.io/benz0li/ghc-musl:9.10.2-int-native

Due to [lld] Static linking fails when using GHC musl images with `gmp` big-integer implementation plus `ld.lld` as default linker · Issue #142307 · llvm/llvm-project · GitHub the regular GHC musl docker manifests[2] still use ld.bfd (the GNU linker) by default.


  1. that link against the Haskell-native big-integer backend ↩︎

  2. that link against the GMP big-integer implementation ↩︎

3 Likes