maintainer-feedback requested: [Bug 273091] lang/ghc 9.4.6 fails to build without the addition of iconv configure flags
Date: Sun, 13 Aug 2023 00:00:13 UTC
Bugzilla Automation <bugzilla@FreeBSD.org> has asked freebsd-haskell (Nobody) <haskell@FreeBSD.org> for maintainer-feedback: Bug 273091: lang/ghc 9.4.6 fails to build without the addition of iconv configure flags https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273091 --- Description --- OS: FreeBSD 13.2-STABLE stable/13-bc50720b32 GENERIC amd64 What: attempted to build lang/ghc-9.4.6 from Ports with default `make config` options Expected result: successful build of ghc Actual result: build fails at the stage1 bootstrap phase with the following error message: # cabal-configure (for _build/stage1/libraries/base/setup-config) configure: error: iconv is required on non-Windows platforms ExitFailure 1 Build failed. *** Error code 1 Stop. make[1]: stopped in /usr/ports/lang/ghc *** Error code 1 /usr/ports/lang/ghc/work/ghc-9.4.6/_build/stage1/libraries/base/build/config.lo g reveals: configure:32566: checking for library containing iconv configure:32597: /usr/local/bin/gcc -o conftest -iquote /usr/ports/lang/ghc/work /ghc-9.4.6/libraries/base -fuse-ld=gold conftest.c -lrt >&5 /tmp//cccRZgTs.o:conftest.c:function main: error: undefined reference to 'libico nv_open' /tmp//cccRZgTs.o:conftest.c:function main: error: undefined reference to 'libico nv' /tmp//cccRZgTs.o:conftest.c:function main: error: undefined reference to 'libico nv_close' collect2: error: ld returned 1 exit status configure:32597: $? = 1 configure: failed program was: | /* confdefs.h */ And: configure:32597: /usr/local/bin/gcc -o conftest -iquote /usr/ports/lang/ghc/work /ghc-9.4.6/libraries/base -fuse-ld=gold conftest.c -liconv -lrt >&5 /usr/local/bin/ld.gold: error: cannot find -liconv /tmp//ccp8G3Is.o:conftest.c:function main: error: undefined reference to 'libico nv_open' /tmp//ccp8G3Is.o:conftest.c:function main: error: undefined reference to 'libico nv' /tmp//ccp8G3Is.o:conftest.c:function main: error: undefined reference to 'libico nv_close' collect2: error: ld returned 1 exit status On my system, iconv headers and libs are installed to the standard location, /usr/local. However, for some reason ghc's configure script fails to look for them there. This may be similar to a problem noted by Mac OS X users attempting to build ghc when two different versions of iconv exist on their systems, installed in different locations. The fix/workaround is easy: edit the Makefile and add appropriate iconv-related configure flags: GNU_CONFIGURE= yes CONFIGURE_ARGS+= --docdir=${DOCSDIR} --with-iconv-libraries=${LOCALBASE}/lib --with-iconv-includes=${LOCALBASE}/include CONFIGURE_ENV= ALEX=/usr/bin/true HAPPY=/usr/bin/true INSTALL_TARGET= install-strip After this, ghc has no problem finding iconv and the build progresses past this error. I thought I'd share this information in case anyone else is having difficulty building ghc-9.4.6 or to suggest a tweak to the Makefile.