-
Notifications
You must be signed in to change notification settings - Fork 15.4k
Open
Labels
Description
Your environment
Which OS do you use? Alpine Linux 3.22.0
Which version of LLVM do you use and how do you install it? Version 20. Using apk.
Preparation
git clone https://github.com/benz0li/ghc-musl.git
cd ghc-musl
git checkout 361466df797552946aeece4d4e0d618203821b75Build GHC musl
docker build \
--progress plain \
--target test \
-t ghc-musl:9.10.2 \
-f dockerfiles/9.10.2.Dockerfile .
Expected behaviour
Build succeeds. Test (static linking) succeeds.
Actual behaviour
Build succeeds. Test (static linking) fails.
Cross references:
- [lld] Not creating fully statically linked binaries on Alpine Linux #137510 (comment)
ld.lld(the LLVM linker) is missing in the images benz0li/ghc-musl#13 (comment)
Output (excerpt):
#17 [test 1/4] WORKDIR /usr/local/src
#17 DONE 0.0s
#18 [test 2/4] COPY --from=ghc-stage2 /root/.local/bin/cabal /usr/local/bin/cabal
#18 DONE 0.5s
#19 [test 3/4] COPY Main.hs Main.hs
#19 DONE 0.0s
#20 [test 4/4] RUN ghc -static -optl-pthread -optl-static Main.hs && file Main && ./Main && mkdir cabal-test && cd cabal-test && cabal update && cabal init -n --is-executable -p tester -l MIT && cabal run
#20 0.249 [1 of 2] Compiling Main ( Main.hs, Main.o )
#20 0.333 [2 of 2] Linking Main
#20 0.677 ld.lld: error: undefined symbol: __gmpn_add_1
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzuaddzu1_slow$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzuaddzu1_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzuaddzuword_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 1 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_sub_1
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzusubzu1_slow$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzusubzu1_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzusubzuword_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 1 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_add
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzuadd_slow$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzuadd_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzuadd_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 2 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_sub
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzusub_slow$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzusub_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzusub_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 2 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_mul
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzumul_slow$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzumul_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzumul_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 1 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_cmp
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzucmp_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzucompare_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by BigNat.o:(ghczmbignum_GHCziNumziBigNat_bigNatEqzh_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 27 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_tdiv_qr
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzutdivzuqr_slow$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzutdivzuqr_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzuquotrem_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 5 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_mod_1
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_czumpnzumodzu1_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by GMP.o:(ghczmbignum_GHCziNumziBackendziGMP_bignatzuremzuword_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by BigNat.o:(ghczmbignum_GHCziNumziBigNat_bigNatRemWordzh_info$def) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 5 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpz_get_d
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_get_d) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpz_get_d_2exp
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_get_d) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpn_gcd_1
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_gcd_word) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_gcd_1) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpz_init
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_gcd) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_gcdext) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced by gmp_wrappers.o:(integer_gmp_gcdext) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.677 >>> referenced 8 more times
#20 0.677
#20 0.677 ld.lld: error: undefined symbol: __gmpz_gcd
#20 0.678 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_gcd) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.678
#20 0.678 ld.lld: error: undefined symbol: __gmpz_clear
#20 0.678 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_gcd) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.678 >>> referenced by gmp_wrappers.o:(integer_gmp_gcdext) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_gcdext) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679 >>> referenced 8 more times
#20 0.679
#20 0.679 ld.lld: error: undefined symbol: __gmpz_gcdext
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_gcdext) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679
#20 0.679 ld.lld: error: undefined symbol: __gmpz_sizeinbase
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_sizeinbase) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679
#20 0.679 ld.lld: error: undefined symbol: __gmpz_export
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_mpn_export) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679
#20 0.679 ld.lld: error: undefined symbol: __gmpz_probab_prime_p
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_test_prime) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679
#20 0.679 ld.lld: error: undefined symbol: __gmpz_nextprime
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_next_prime) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_next_prime1) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679
#20 0.679 ld.lld: error: undefined symbol: __gmpz_powm
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_powm) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679 >>> referenced by gmp_wrappers.o:(integer_gmp_powm1) in archive /usr/local/lib/ghc-9.10.2/lib/../lib/aarch64-linux-ghc-9.10.2/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a
#20 0.679
#20 0.679 ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
#20 0.682 collect2: error: ld returned 1 exit status
#20 0.683 ghc-9.10.2: `gcc' failed in phase `Linker'. (Exit code: 1)
#20 0.683 HasCallStack backtrace:
#20 0.683 collectBacktraces, called at libraries/ghc-internal/src/GHC/Internal/Exception.hs:169:13 in ghc-internal:GHC.Internal.Exception
#20 0.683 toExceptionWithBacktrace, called at libraries/ghc-internal/src/GHC/Internal/IO.hs:260:11 in ghc-internal:GHC.Internal.IO
#20 0.683 throwIO, called at libraries/exceptions/src/Control/Monad/Catch.hs:308:12 in exceptions-0.10.9-inplace:Control.Monad.Catch
#20 0.683 throwM, called at libraries/exceptions/src/Control/Monad/Catch.hs:797:84 in exceptions-0.10.9-inplace:Control.Monad.Catch
#20 0.683 onException, called at compiler/GHC/Driver/Make.hs:2983:23 in ghc-9.10.2-inplace:GHC.Driver.Make
#20 0.683
#20 0.683
#20 ERROR: process "/bin/sh -c ghc -static -optl-pthread -optl-static Main.hs && file Main && ./Main && mkdir cabal-test && cd cabal-test && cabal update && cabal init -n --is-executable -p tester -l MIT && cabal run" did not complete successfully: exit code: 1