diff options
author | joerg <joerg@pkgsrc.org> | 2016-05-07 10:02:06 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2016-05-07 10:02:06 +0000 |
commit | 85b39467b919926548a45984150b990621b1f4d7 (patch) | |
tree | 390b3b42d1f2fba02c02152d6d209fd12e44e451 | |
parent | 680dfd200d7dda5c7d76aae3ca3b5526135de6e9 (diff) | |
download | pkgsrc-85b39467b919926548a45984150b990621b1f4d7.tar.gz |
Fix libffi linkage, so that it actually picks up the right version and
includes the rpath. Seen by a not so happy devel/happy. Bump revision.
-rw-r--r-- | lang/ghc7/Makefile | 4 | ||||
-rw-r--r-- | lang/ghc7/distinfo | 5 | ||||
-rw-r--r-- | lang/ghc7/patches/patch-libffi_ghc.mk | 41 | ||||
-rw-r--r-- | lang/ghc7/patches/patch-rts_ghc.mk | 26 |
4 files changed, 66 insertions, 10 deletions
diff --git a/lang/ghc7/Makefile b/lang/ghc7/Makefile index 5edb10b4892..a452e5648c9 100644 --- a/lang/ghc7/Makefile +++ b/lang/ghc7/Makefile @@ -1,10 +1,10 @@ -# $NetBSD: Makefile,v 1.24 2016/04/14 19:56:44 joerg Exp $ +# $NetBSD: Makefile,v 1.25 2016/05/07 10:02:06 joerg Exp $ # ----------------------------------------------------------------------------- # Package metadata # DISTNAME= ghc-7.6.3-src PKGNAME= ${DISTNAME:S/-src$//} -PKGREVISION= 8 +PKGREVISION= 9 CATEGORIES= lang MASTER_SITES= http://www.haskell.org/ghc/dist/${PKGVERSION_NOREV}/ EXTRACT_SUFX= .tar.bz2 diff --git a/lang/ghc7/distinfo b/lang/ghc7/distinfo index c9e54b8c858..41e580637d5 100644 --- a/lang/ghc7/distinfo +++ b/lang/ghc7/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.13 2015/11/03 22:50:36 agc Exp $ +$NetBSD: distinfo,v 1.14 2016/05/07 10:02:06 joerg Exp $ SHA1 (ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz) = aea6224f30aa52d9998f2c77f473902179f03b8c RMD160 (ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz) = 39a588cac4a0411db45ef269fbe6a63c6cb428ee @@ -16,6 +16,7 @@ SHA512 (ghc-7.6.3-src.tar.bz2) = ac86f18b4feeb0bdc9e867261600b210caf62740d73ae65 Size (ghc-7.6.3-src.tar.bz2) = 110763823 bytes SHA1 (patch-Makefile) = a6692a4a90b8003a8719c51d82d15f5af0ba1907 SHA1 (patch-ghc.mk) = c4210aaa3e2b4a319b0b70da375ac89fddde5cb7 +SHA1 (patch-libffi_ghc.mk) = 68f3c9c25b93fc3debac75ae8e37535f11a44731 SHA1 (patch-libraries_base_configure.ac) = dd6132c5335d7e0421ec2181ebb5a34bb162e255 SHA1 (patch-libraries_integer-gmp_configure.ac) = bc5ce3a6c39d681c413eb08b66e7287e39406fe0 SHA1 (patch-libraries_integer-simple_GHC_Integer.hs) = f079285bc489c194959b9bee2aa5c977ec77ae1e @@ -28,4 +29,4 @@ SHA1 (patch-libraries_unix_include_execvpe.h) = 4c48b72f74d360e925528ecce95baa8a SHA1 (patch-mk_config.mk.in) = 90a156f6c455d4b2c5d10fdf65b3a170dcfc4892 SHA1 (patch-rts_Linker.c) = 39d1ca7a856a3ec25e493e97832ef255562c0719 SHA1 (patch-rts_StgCRun.c) = 5d4010dc250af25db0b5b2717c510752f4813e73 -SHA1 (patch-rts_ghc.mk) = 3ef8635ad954df9149aa90046de3a73de186c280 +SHA1 (patch-rts_ghc.mk) = 6a43e6e2a58793ba4ff309012c3e24114ccde1e2 diff --git a/lang/ghc7/patches/patch-libffi_ghc.mk b/lang/ghc7/patches/patch-libffi_ghc.mk new file mode 100644 index 00000000000..4a5df41942f --- /dev/null +++ b/lang/ghc7/patches/patch-libffi_ghc.mk @@ -0,0 +1,41 @@ +$NetBSD: patch-libffi_ghc.mk,v 1.1 2016/05/07 10:02:06 joerg Exp $ + +--- libffi/ghc.mk.orig 2015-09-22 19:10:58.000000000 +0000 ++++ libffi/ghc.mk +@@ -31,7 +31,7 @@ libffi_STAMP_INSTALL = $(libffi_STAMP_ + libffi_EnableShared = no + endif + +-libffi_STATIC_LIB = libffi/build/inst/lib/libffi.a ++libffi_STATIC_LIB = libffi/build/inst${ghclibdir}/libffi.a + libffi_HEADERS = rts/dist/build/ffi.h \ + rts/dist/build/ffitarget.h + +@@ -85,8 +85,8 @@ $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP) + CFLAGS="$(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE1) -w" \ + LDFLAGS="$(SRC_LD_OPTS) $(CONF_GCC_LINKER_OPTS_STAGE1) -w" \ + "$(SHELL)" configure \ +- --prefix=$(TOP)/libffi/build/inst \ +- --libdir=$(TOP)/libffi/build/inst/lib \ ++ --prefix=${prefix} \ ++ --libdir=${ghclibdir} \ + --enable-static=yes \ + --enable-shared=$(libffi_EnableShared) \ + --host=$(TargetPlatformFull) +@@ -103,14 +103,14 @@ $(libffi_STAMP_BUILD): $(libffi_STAMP_CO + "$(TOUCH_CMD)" $@ + + $(libffi_STAMP_INSTALL): $(libffi_STAMP_BUILD) $(TOUCH_DEP) +- $(MAKE) -C libffi/build MAKEFLAGS= install ++ $(MAKE) -C libffi/build MAKEFLAGS= install DESTDIR=$(TOP)/libffi/build/inst + "$(TOUCH_CMD)" $@ + + $(libffi_STATIC_LIB): $(libffi_STAMP_INSTALL) + @test -f $@ || { echo "$< exists, but $@ does not."; echo "Suggest removing $<."; exit 1; } + + $(libffi_HEADERS): $(libffi_STAMP_INSTALL) | $$(dir $$@)/. +- cp -f libffi/build/inst/lib/libffi-*/include/$(notdir $@) $@ ++ cp -f libffi/build/inst/${ghclibdir}/libffi-*/include/$(notdir $@) $@ + + $(eval $(call clean-target,libffi,, \ + libffi/build $(wildcard libffi/stamp.ffi.*) libffi/dist-install)) diff --git a/lang/ghc7/patches/patch-rts_ghc.mk b/lang/ghc7/patches/patch-rts_ghc.mk index 9bd39258e04..589889a0927 100644 --- a/lang/ghc7/patches/patch-rts_ghc.mk +++ b/lang/ghc7/patches/patch-rts_ghc.mk @@ -1,4 +1,4 @@ -$NetBSD: patch-rts_ghc.mk,v 1.5 2015/02/06 01:24:48 pho Exp $ +$NetBSD: patch-rts_ghc.mk,v 1.6 2016/05/07 10:02:06 joerg Exp $ This is pkgsrc specific: @@ -22,16 +22,30 @@ unpleasant patch in the future. --- rts/ghc.mk.orig 2013-04-18 21:22:47.000000000 +0000 +++ rts/ghc.mk -@@ -113,7 +113,8 @@ $(rts_ffi_objs_stamp): $(libffi_STATIC_L +@@ -112,10 +112,11 @@ $(rts_ffi_objs_stamp): $(libffi_STATIC_L + # This is a little hacky. We don't know the SO version, so we only # depend on libffi.so, but copy libffi.so* - rts/dist/build/libffi$(soext): libffi/build/inst/lib/libffi$(soext) +-rts/dist/build/libffi$(soext): libffi/build/inst/lib/libffi$(soext) - cp libffi/build/inst/lib/libffi$(soext)* rts/dist/build -+ cp libffi/build/inst/lib/libffi*$(soext)* rts/dist/build -+ cp libffi/build/inst/lib/libffi.*a rts/dist/build ++rts/dist/build/libffi$(soext): libffi/build/inst${ghclibdir}/libffi$(soext) ++ cp libffi/build/inst${ghclibdir}/libffi*$(soext)* rts/dist/build ++ cp libffi/build/inst${ghclibdir}/libffi.*a rts/dist/build - rts/dist/build/$(LIBFFI_DLL): libffi/build/inst/bin/$(LIBFFI_DLL) +-rts/dist/build/$(LIBFFI_DLL): libffi/build/inst/bin/$(LIBFFI_DLL) ++rts/dist/build/$(LIBFFI_DLL): libffi/build/inst${prefix}/bin/$(LIBFFI_DLL) cp $< $@ + endif + +@@ -185,7 +186,7 @@ else + $$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend rts/dist/build/libffi$$(soext) + "$$(RM)" $$(RM_OPTS) $$@ + "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ +- -no-auto-link-packages -Lrts/dist/build -lffi `cat rts/libs.depend` $$(rts_$1_OBJS) \ ++ -no-auto-link-packages -Lrts/dist/build -optl -Wl,-rpath,${ghclibdir} -lffi `cat rts/libs.depend` $$(rts_$1_OBJS) \ + $$(rts_$1_DTRACE_OBJS) -o $$@ + ifeq "$$(darwin_HOST_OS)" "1" + # Ensure library's install name is correct before anyone links with it. @@ -509,7 +510,8 @@ endif # installing |