Tuesday, September 24, 2019

Re: ghc 8.6.4 upgrade Sep 15

On Mon, Sep 23, 2019 at 11:39:51PM +0200, Matthias Kilian wrote:
> Still to clarify / fix:
>
> - architecture-dependent directories in hs-ports.

Which can be "fixed" by this one (a better fix would be to patch ghc-pkg
and/or cabal to use libdir/libsubdir for shared libraries the same way
as for static libraries and to drop the $arch-$os-$compiler patterns):

Index: ghc.port.mk
===================================================================
RCS file: /cvs/ports/lang/ghc/ghc.port.mk,v
retrieving revision 1.43
diff -u -p -r1.43 ghc.port.mk
--- ghc.port.mk 10 Sep 2019 13:51:21 -0000 1.43
+++ ghc.port.mk 24 Sep 2019 09:34:24 -0000
@@ -64,13 +64,15 @@ MODGHC_SETUP_CONF_ENV ?=
MODGHC_SETUP_CONF_ARGS += --datasubdir=hs-\$$pkgid
MODGHC_SETUP_CONF_ARGS += --docdir=\$$datadir/doc/hs-\$$pkgid
MODGHC_SETUP_CONF_ARGS += --libsubdir=ghc/\$$pkgid
+MODGHC_SETUP_CONF_ARGS += --dynlibdir=${PREFIX}/lib/ghc/\$$pkgid
MODGHC_SETUP_CONF_ARGS += --enable-library-profiling
. else
# Override Cabal defaults, which are $arch-$os-$compiler/$pkgid for
-# datasubdir and libsubdir and $datadir/doc/$arch-$os-$compiler/$pkgid
-# for docdir.
+# datasubdir and libsubdir, $datadir/doc/$arch-$os-$compiler/$pkgid
+# for docdir and ${PREFIX}/lib/$arch-$os-$compiler/$pkgid for dynlibdir.
MODGHC_SETUP_CONF_ARGS += --datasubdir=\$$pkgid
MODGHC_SETUP_CONF_ARGS += --libsubdir=\$$pkgid
+MODGHC_SETUP_CONF_ARGS += --dynlibdir=${PREFIX}/lib/ghc/\$$pkgid
MODGHC_SETUP_CONF_ARGS += --docdir=\$$datadir/doc/\$$pkgid
. endif


> - the libffi shared library built from the bundled ffi; not sure wether
> this is a problem or not, but it looks a little bit scary.

And indeed. After a few iterations of fixing plists of hs-ports (after
the dynlibdir patch above), with pkg_delete -a in between, I ran into
build errors like this one:

===> Configuring for hs-vector-0.12.0.3
ld.so: ghc: can't load library 'libffi.so.1.2'
Killed

The ghc binary was linked against our system libffi (from devel/libffi),
and after the pkg_delete -a and a restart of dpb, this was missing. So
I'll now try to build ghc using our libffi instead of the bundled one.

Ciao,
Kili

No comments:

Post a Comment