Build system: don't add ALL_HC_OPTS when linking
authorThomas Miedema <thomasmiedema@gmail.com>
Mon, 26 Oct 2015 19:54:58 +0000 (20:54 +0100)
committerThomas Miedema <thomasmiedema@gmail.com>
Wed, 28 Oct 2015 06:51:03 +0000 (07:51 +0100)
commit9fc2d777f53110040f48ab27643a16888fa377f5
tree7f93728a10f89444ea0529c26b1e47923eae884c
parentd1ab6fc9eddcee63ea594c1357d47d3dcebe2492
Build system: don't add ALL_HC_OPTS when linking

Summary:
The current scheme in rules/distdir-way-opts.mk is something like this:
  GHC_LD_OPTS      = MOST_HC_OPTS + ALL_LD_OPTS
  MOST_DIR_HC_OPTS = MOST_HC_OPTS + -odir,-hidir,-stubdir
  ALL_HC_OPTS      = MOST_DIR_HC_OPTS +
                        -hisuf,-osuf,-hcsuf,-split-objs,-dynamic-too

Notice that both ALL_HC_OPTS and GHC_LD_OPTS include MOST_HC_OPTS, and
currently both got added when linking. Adding MOST_HC_OPTS twice results
in overly long and hard to decipher command lines (and build logs). This
commit fixes that.

Afaik, -odir,-hidir,-stubdir,-hisuf,-osuf,-hcsuf,-spit-objs,-dynamic-too
are all not needed when linking, so this change should be safe to make.
GHC_LD_OPTS is for linking, ALL_HC_OPTS is for compiling.

ALL_HC_OPTS was added to the linking commands in
37a6a52facd1c3999ce4472c50b0030568be1e04, to make sure
-no-user-package-conf would be in the options list. It still is after
this change.

Reviewers: austin, bgamari

Differential Revision: https://phabricator.haskell.org/D1379
rules/build-package-way.mk
rules/build-prog.mk
rules/distdir-way-opts.mk