summaryrefslogtreecommitdiff
path: root/lang/ghc7
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2016-05-07 10:02:06 +0000
committerjoerg <joerg@pkgsrc.org>2016-05-07 10:02:06 +0000
commit85b39467b919926548a45984150b990621b1f4d7 (patch)
tree390b3b42d1f2fba02c02152d6d209fd12e44e451 /lang/ghc7
parent680dfd200d7dda5c7d76aae3ca3b5526135de6e9 (diff)
downloadpkgsrc-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.
Diffstat (limited to 'lang/ghc7')
-rw-r--r--lang/ghc7/Makefile4
-rw-r--r--lang/ghc7/distinfo5
-rw-r--r--lang/ghc7/patches/patch-libffi_ghc.mk41
-rw-r--r--lang/ghc7/patches/patch-rts_ghc.mk26
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