Without the change build fails on darwin as:
duplicate symbol '_static_code_space_free_pointer' in:
alloc.o
traceroot.o
duplicate symbol '_static_code_space_free_pointer' in:
alloc.o
gencgc.o
Without the change -fno-common toolchain like llvm-11 fails as:
ld: libcamlrun.a(minor_gc.o):/build/ocaml/byterun/caml/major_gc.h:67: multiple definition of
`caml_major_ring'; libcamlrun.a(stacks.o):/build/ocaml/byterun/caml/major_gc.h:67: first defined here
Since the musl / alpine bindist now uses the GMP backend, we need to
learn to tell Hadrian bindists about GMP. Hadrian bindists no longer
have the buildinfo files, instead we need to patch the package db before
installing and recache it afterwards which is not too hard, luckily.
Same goes for libiconv and base as well as libffi and rts on
darwin (those bindists are all produced using hadrian).
See also: https://gitlab.haskell.org/ghc/ghc/-/issues/21554#note_431000
Note that pkgsMusl.haskell.compiler.ghc922Binary still has severe
issues: It can't produce shared libraries because the bindist ships
none (and using the GMP backend has a hard requirement for shared
objects, apparently) and ghci segfaults for unknown reasons at the
moment. However, I've successfully compiled hadrian with it so far, so
perhaps it's good enough.
If HARECACHE is unset, it hare will default to attempting to cache files
relative to $HOME, which isn't writable during a build. Set HARECACHE to
a suitable location so packages that are built with hare don't have to
manually handle this.
A few complex math tests have been failing since they were added, so
disable the failing cases for now.
> 3 tests failed:
> math::complex::cos: Assertion failed: ./math/complex/+test.ha:1088:2
> math::complex::cosh: Assertion failed: ./math/complex/+test.ha:1114:2
> math::complex::exp: Assertion failed: ./math/complex/+test.ha:1140:2
>
> 372 passed; 3 failed; 375 tests completed in 1.19521s