On 2022-8-29 04:42 , Steven Smith wrote:
Re: https://gitlab.haskell.org/ghc/ghc/-/issues/22118 <https://gitlab.haskell.org/ghc/ghc/-/issues/22118>

I'm self-bootstrapping ghc 9.4.2 using hadrian for deployment on MacPorts.

Running hadrian -f binary-dist throws this error:
:info:build "_iconv_close", referenced from:
:info:build _hs_iconv_close in libHSbase-4.17.0.0.a(iconv.o)
:info:build (maybe you meant: _hs_iconv_close)
:info:build "_iconv", referenced from:
:info:build _hs_iconv in libHSbase-4.17.0.0.a(iconv.o)

The archive file libHSbase-4.17.0.0.a in the ghc install uses the undefined symbol _iconv_close; however, macOS 12.5.1 no longer appears to provide a system libiconv:
ls /usr/lib/libiconv*
ls: /usr/lib/libiconv*: No such file or directory

And port iconv provides the _libiconv_open symbol, not the _iconv_open symbol.

Is anyone aware of a solution to a missing libconv.dylib on recent macOS?


It's not actually missing, it just doesn't exist as a file in the filesystem. All OS-supplied libraries now exist only in the shared dyld cache. (The SDK, as you discovered, contains text-based stubs with just enough information about exported symbols and whatnot to allow linking.)

That does mean that all build systems that check for the existence of a .dylib file to see if a library is available are broken. If checking is really necessary, they need to check if they can link with the library instead.

For deployment in MacPorts though, you probably want to be using the libiconv port anyway?

- Josh

Reply via email to