summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Brenner <olsner@gmail.com>2017-02-12 00:25:16 (GMT)
committerBen Gamari <ben@smart-cactus.org>2017-02-12 00:58:35 (GMT)
commita50082c115bed1891b2e5aac4a21462935f4f0d6 (patch)
tree4a348c54da987432d137687730b6eb2be4815344
parent6b4e46a1ad57f90726de7e5b7f59814aea5f03ef (diff)
downloadghc-a50082c115bed1891b2e5aac4a21462935f4f0d6.zip
ghc-a50082c115bed1891b2e5aac4a21462935f4f0d6.tar.gz
ghc-a50082c115bed1891b2e5aac4a21462935f4f0d6.tar.bz2
Apply SplitSections to all C compilations
Previously this was added only to the RTS's C files (those are the bulk of it though), but there are C bits in ghc-prim, integer-gmp and base too. Followup for #8405, allows the large table of character properties in base to be stripped when not used. Test Plan: validate Reviewers: austin, bgamari, simonmar Reviewed By: bgamari Subscribers: thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3121
-rw-r--r--rts/ghc.mk4
-rw-r--r--rules/distdir-way-opts.mk3
2 files changed, 2 insertions, 5 deletions
diff --git a/rts/ghc.mk b/rts/ghc.mk
index d3daec5..89c5a0b 100644
--- a/rts/ghc.mk
+++ b/rts/ghc.mk
@@ -335,10 +335,6 @@ ifeq "$$(TargetOS_CPP)" "mingw32"
rts_CC_OPTS += -DWINVER=$(rts_WINVER)
endif
-ifeq "$(SplitSections)" "YES"
-rts_CC_OPTS += -ffunction-sections -fdata-sections
-endif
-
#-----------------------------------------------------------------------------
# Flags for compiling specific files
rts/RtsMessages_CC_OPTS += -DProjectVersion=\"$(ProjectVersion)\"
diff --git a/rules/distdir-way-opts.mk b/rules/distdir-way-opts.mk
index 62a1451..c4d7168 100644
--- a/rules/distdir-way-opts.mk
+++ b/rules/distdir-way-opts.mk
@@ -190,7 +190,8 @@ $1_$2_$3_ALL_CC_OPTS = \
$$($1_$2_$3_CC_OPTS) \
$$($$(basename $$<)_CC_OPTS) \
$$($1_$2_EXTRA_CC_OPTS) \
- $$(EXTRA_CC_OPTS)
+ $$(EXTRA_CC_OPTS) \
+ $$(if $$(findstring YES,$$($1_$2_SplitSections)),-ffunction-sections -fdata-sections)
$1_$2_$3_GHC_CC_OPTS = \
$$(addprefix -optc, $$($1_$2_$3_ALL_CC_OPTS)) \