Many FreeBSD testsuite failures due to missing iconv_open
Currently attempting to build GHC on FreeBSD 13 against the iconv
implementation provided by libc
produces a broken compiler. Specifically (as of 87d93745):
$ ./configure --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib
$ hadrian/build-cabal -j9
$ hadrian/build-cabal -j9 test
...
SUMMARY for test run started at Fri Sep 10 00:11:32 2021
0:24:26.976783 spent to go through
8445 total tests, which gave rise to
42361 test cases, of which
29940 were skipped
45 had missing libraries
8457 expected passes
109 expected failures
0 caused framework failures
0 caused framework warnings
0 unexpected passes
407 unexpected failures
0 unexpected stat failures
25 fragile tests
Specifically, the failures are all RTS linker failures of the form:
GHC.ByteCode.Linker.lookupCE
During interactive linking, GHCi couldn't find the following symbol:
templatezmhaskell_LanguageziHaskellziTHziSyntax_mkName_closure
This may be due to you not asking GHCi to load extra object files,
archives or DLLs needed by your current session. Restart GHCi, specifying
the missing library using the -L/path/to/object/dir and -lmissinglibname
flags, or simply by naming the relevant files on the GHCi command line.
Alternatively, this link failure might indicate a bug in GHCi.
If you suspect the latter, please report this as a GHC bug:
https://www.haskell.org/ghc/reportabug
Compile failed (exit code 1) errors were:
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `iconv_open'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `hs_iconv'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziIOziEncodingziIconv_iconvEncoding2_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziIOziEncoding_getForeignEncoding_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_ForeignziCziError_throwErrnoIfMinus1zu1_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `ghczuwrapperZC20ZCbaseZCSystemziPosixziInternalsZCwrite'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziIOziHandleziInternals_zdwreadTextDevice_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziIOziHandleziText_zdwhGetBuf_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziFingerprint_fingerprintString_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_DataziTypeableziInternal_zdwmkTrCon_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziExceptionziType_underflowException_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziReal_zczuzdszc_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_TextziReadziLex_expect2_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_DataziEither_Left_con_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_ControlziExceptionziBase_patError_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziList_zdwznzn_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziShow_zdwitos_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziException_errorCallWithCallStackException1_info'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziIOziException_zdfxExceptionIOException_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/base-4.16.0.0/libHSbase-4.16.0.0.a: unknown symbol `base_GHCziIO_mplusIO_closure'
ghc-iserv: /usr/home/vagrant/ghc/_build/stage1/lib/x86_64-freebsd-ghc-9.3.20210908/template-haskell-2.18.0.0/libHStemplate-haskell-2.18.0.0.a: unknown symbol `base_GHCziBase_zpzp_info'
ghc-iserv: ^^ Could not load 'templatezmhaskell_LanguageziHaskellziTHziSyntax_zdfApplicativeQ6_closure', dependency unresolved. See top entry above.