On 30/10/2012 12:29, Ian Lynagh wrote:
On Tue, Oct 30, 2012 at 12:15:16PM +0000, Simon Marlow wrote:
On 30/10/2012 02:48, Ian Lynagh wrote:

+# Setting hisuf/osuf is a kludge. If DYNAMIC_BY_DEFAULT is on, dyn is
+# the first way, and p is another way, then without this kludge we run
+#     ghc -M -hisuf dyn_hi -osuf dyn_o -dep-suffix dyn -dep-suffix p
+# which means we get dependencies for .dyn_hi/.dyn_o and .p_dyn_hi/.p_dyn_o
+# rather than .dyn_hi/.dyn_o and .p_hi/.p_o.
+# With the kludge we also get .hi/.o dependencies that we don't need, but
+# they don't do any harm.
+# We also specify -static, as otherwise we end up with some dependencies
+# on .dyn_dyn_hi files
+$1_$2_MKDEPENDHS_FLAGS += -static -hisuf hi -osuf o

  ifneq "$$(NO_GENERATED_MAKEFILE_RULES)" "YES"

@@ -34,8 +44,9 @@ $$($1_$2_depfile_haskell) : $$(includes_H_CONFIG) 
$$(includes_H_PLATFORM)
  $$($1_$2_depfile_haskell) : $$($1_$2_HS_SRCS) $$($1_$2_HS_BOOT_SRCS) 
$$($1_$2_HC_MK_DEPEND_DEP) | $$$$(dir $$$$@)/.
        $$(call removeFiles,$$@.tmp)
  ifneq "$$($1_$2_HS_SRCS)" ""
-       "$$($1_$2_HC_MK_DEPEND)" -M $$($1_$2_MKDEPENDHS_FLAGS) \
+       "$$($1_$2_HC_MK_DEPEND)" -M \
            $$(filter-out -split-objs, $$($1_$2_$$(firstword 
$$($1_$2_WAYS))_ALL_HC_OPTS)) \
+           $$($1_$2_MKDEPENDHS_FLAGS) \
            $$($1_$2_HS_SRCS)
  endif
        echo "$1_$2_depfile_haskell_EXISTS = YES" >> $$@.tmp

I encountered this yesterday.  I wonder whether we could just use
$$($1_$2_v_ALL_HC_OPTS) instead of $$($1_$2_$$(firstword
$$($1_$2_WAYS))_ALL_HC_OPTS), and then we wouldn't need the kludge
(though we'd still need a comment to explain why).  Wouldn't that be
better?

$1_$2_v_ALL_HC_OPTS is only defined if the v way is in GhcLibWays.

Hmm, well, I think it might make sense to ensure it was always defined and then use it. Here we really do want the "v" way rather than just picking the first way from the list and then hacking around the problems.

Cheers,
        Simon


_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to