Apply SplitSections to all C compilations
authorSimon Brenner <olsner@gmail.com>
Sun, 12 Feb 2017 00:25:16 +0000 (19:25 -0500)
committerBen Gamari <ben@smart-cactus.org>
Sun, 12 Feb 2017 00:58:35 +0000 (19:58 -0500)
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

rts/ghc.mk
rules/distdir-way-opts.mk

index d3daec5..89c5a0b 100644 (file)
@@ -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)\"
index 62a1451..c4d7168 100644 (file)
@@ -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)) \