summaryrefslogtreecommitdiff
path: root/lang/ghc7
diff options
context:
space:
mode:
authorpho <pho@pkgsrc.org>2021-04-27 13:55:25 +0000
committerpho <pho@pkgsrc.org>2021-04-27 13:55:25 +0000
commitf555e0c6f9088cad73a51f0d785c643fe28b9691 (patch)
treead9140b99f50d3571fcd69650d5406a576e98f98 /lang/ghc7
parent5875f48e2fc537f91240479139e48458cbb19e5d (diff)
downloadpkgsrc-f555e0c6f9088cad73a51f0d785c643fe28b9691.tar.gz
Swith to CHECK_SHLIBS_SUPPORTED=no from individual CHECK_SHLIBS_SKIP list (pkg/56125)
Our binary packages have been broken because of bad "REQUIRES" entries: GHC uses $ORIGIN in rpath but mk/pkgformat/pkg/metadata.mk uses ldd(1) to extract the list of required .so objects, which causes them to be wrongly expanded.
Diffstat (limited to 'lang/ghc7')
-rw-r--r--lang/ghc7/Makefile21
1 files changed, 14 insertions, 7 deletions
diff --git a/lang/ghc7/Makefile b/lang/ghc7/Makefile
index b409ccbbcdf..b7a865fd1fc 100644
--- a/lang/ghc7/Makefile
+++ b/lang/ghc7/Makefile
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.45 2020/08/31 18:09:49 wiz Exp $
+# $NetBSD: Makefile,v 1.46 2021/04/27 13:55:25 pho Exp $
# -----------------------------------------------------------------------------
# Package metadata
#
DISTNAME= ghc-7.10.3-src
-PKGREVISION= 4
+PKGREVISION= 5
PKGNAME= ${DISTNAME:S/-src$//}
CATEGORIES= lang
MASTER_SITES= https://downloads.haskell.org/~ghc/${PKGVERSION_NOREV}/
@@ -166,11 +166,18 @@ CHECK_PORTABILITY_SKIP+= distrib/prep-bin-dist-mingw
# Dynamically linked Haskell executables and libraries have rpaths to
# dependent Haskell libraries, but the problem is that they are
# specified with $ORIGIN, which isn't currently supported by
-# ../../mk/check/check-shlibs-elf.awk.
-CHECK_SHLIBS_SKIP+= */libHS*-ghc${PKGVERSION_NOREV}.*
-.for f in ghc ghc-pkg haddock hpc hsc2hs runghc
-CHECK_SHLIBS_SKIP+= lib/${PKGNAME_NOREV}/bin/${f}
-.endfor
+# ../../mk/check/check-shlibs-elf.awk nor
+# mk/pkgformat/pkg/metadata.mk.
+#
+# This means we need to disable the entire CHECK_SHLIBS machinery
+# because otherwise the resulting binary package would contain
+# REQUIRES lines with $ORIGIN wrongly expanded by ldd(1).
+#
+# Note that arguments like "-Wl,-rpath,$ORIGIN/.." are usually dropped
+# by the "cleanup" phase of wrappers. This is not the case in GHC
+# because GHC uses @file syntax while linking objects, and our
+# wrappers does nothing about it.
+CHECK_SHLIBS_SUPPORTED= no
# ghc57207_0.s: failed to add inputs for merge: Resource temporarily unavailable
CTF_FILES_SKIP+= */libHS*-ghc${PKGVERSION_NOREV}.*