diff options
author | Tamar Christina <tamar@zhox.com> | 2015-11-21 13:33:09 +0100 |
---|---|---|
committer | Tamar Christina <tamar@zhox.com> | 2015-11-21 13:43:29 +0100 |
commit | 7f77e4e9b301493db0782cf2d129cf62dbcd5af6 (patch) | |
tree | a458da576e802d221c57dd8d907d25dd737634bb /rules | |
parent | f40fe62d451d7a5af41430cdb6906fd2701698e0 (diff) | |
download | haskell-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')
-rw-r--r-- | rules/build-package-way.mk | 6 |
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 |