pkgsrc/lang/ghc84/patches/patch-rules_distdir-way-opts.mk

27 lines
1.2 KiB
Makefile

$NetBSD: patch-rules_distdir-way-opts.mk,v 1.2 2021/05/01 02:57:31 pho Exp $
Use correct RPATHs. On ELF we replace "$ORIGIN/../{PACKAGE_ID}" with
the final installation path.
On Darwin library paths work differently. If an executable (or a
library) A depends on a library B, the installation path of B is first
embedded in B, and then the path propagates to A at the time when A is
linked. So we remove -rpath to libraries here, and do the other half
in rules/build-package-way.mk and rts/ghc.mk.
--- rules/distdir-way-opts.mk.orig 2020-07-08 16:43:04.000000000 +0000
+++ rules/distdir-way-opts.mk
@@ -209,11 +209,10 @@ ifneq "$4" "0"
ifeq "$$(TargetElf)" "YES"
$1_$2_$3_GHC_LD_OPTS += \
-fno-use-rpaths \
- $$(foreach d,$$($1_$2_TRANSITIVE_DEP_COMPONENT_IDS),-optl-Wl$$(comma)-rpath -optl-Wl$$(comma)'$$$$ORIGIN/../$$d') -optl-Wl,-zorigin
+ $$(foreach d,$$($1_$2_TRANSITIVE_DEP_COMPONENT_IDS),-optl-Wl$$(comma)-rpath -optl-Wl$$(comma)$$(ghclibdir)/$$d)
else ifeq "$$(TargetOS_CPP)" "darwin"
$1_$2_$3_GHC_LD_OPTS += \
- -fno-use-rpaths \
- $$(foreach d,$$($1_$2_TRANSITIVE_DEP_COMPONENT_IDS),-optl-Wl$$(comma)-rpath -optl-Wl$$(comma)'@loader_path/../$$d')
+ -fno-use-rpaths
endif
endif
endif