Re: [commit: ghc] master: Fix dependency generation when GhcLibWays = dyn p (11aa737)

Simon Marlow <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
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,[email protected])
>   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" >> [email protected]

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?

Cheers,
	Simon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.