summaryrefslogtreecommitdiff
path: root/rules/build-package-way.mk
diff options
context:
space:
mode:
authorTamar Christina <tamar@zhox.com>2015-11-21 13:33:09 +0100
committerTamar Christina <tamar@zhox.com>2015-11-21 13:43:29 +0100
commit7f77e4e9b301493db0782cf2d129cf62dbcd5af6 (patch)
treea458da576e802d221c57dd8d907d25dd737634bb /rules/build-package-way.mk
parentf40fe62d451d7a5af41430cdb6906fd2701698e0 (diff)
downloadhaskell-7f77e4e9b301493db0782cf2d129cf62dbcd5af6.tar.gz
Fix Windows builds after D1242
Summary: Only use the merge_sections.ld linker script if SplitSections is enabled. I thought I had a way to make the linker script actually work on Windows and produce object files instead of image files (by using the "INSERT AFTER" linker script command to get the default script's output format setting), but that fix caused ghci to crash with an illegal instruction on startup. Gave up and made a simpler fix of just disabling this for normal builds, as it's only really relevant with SplitSections enabled anyway. Reviewers: austin, thomie, bgamari Reviewed By: austin, thomie Subscribers: Phyx, thomie Differential Revision: https://phabricator.haskell.org/D1505 GHC Trac Issues: #8405
Diffstat (limited to 'rules/build-package-way.mk')
-rw-r--r--rules/build-package-way.mk6
1 files changed, 5 insertions, 1 deletions
diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk
index d048f74b95..905b7f09df 100644
--- a/rules/build-package-way.mk
+++ b/rules/build-package-way.mk
@@ -136,7 +136,11 @@ BINDIST_LIBS += $$($1_$2_$3_LIB)
BINDIST_LIBS += $$($1_$2_$3_LIB0)
endif
+ifeq "$$($1_$2_SplitSections)" "YES"
+ifeq "$(LdIsGNULd)" "YES"
$1_$2_LD_SCRIPT = driver/utils/merge_sections.ld
+endif
+endif
# Build the GHCi library
ifeq "$$(DYNAMIC_GHC_PROGRAMS)" "YES"
@@ -151,7 +155,7 @@ BINDIST_LIBS += $$($1_$2_GHCI_LIB)
endif
endif
$$($1_$2_GHCI_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS) $$($1_$2_LD_SCRIPT)
- $$(call cmd,LD) $$(CONF_LD_LINKER_OPTS_STAGE$4) -r $(if $(filter YES,$(LdIsGNULd)),-T $$($1_$2_LD_SCRIPT)) -o $$@ $$(EXTRA_LD_OPTS) $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS)
+ $$(call cmd,LD) $$(CONF_LD_LINKER_OPTS_STAGE$4) -r $$(if $$($1_$2_LD_SCRIPT),-T $$($1_$2_LD_SCRIPT)) -o $$@ $$(EXTRA_LD_OPTS) $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS)
ifeq "$$($1_$2_BUILD_GHCI_LIB)" "YES"
# Don't bother making ghci libs for bootstrapping packages