Linker problem with HPC and TemplateHaskell

David Turner dct25-561bs at
Fri Dec 19 21:58:36 UTC 2014

Ok, I've opened

I won't be able to repro on HEAD in the near future, I'm afraid.

Many thanks,

On 19 December 2014 at 21:32, Edward Z. Yang <ezyang at> wrote:
> Sounds like a bug. File a ticket? If you can see if you can
> repro on GHC HEAD that would also be helpful.
> Edward
> Excerpts from David Turner's message of 2014-12-19 16:24:25 -0500:
>> Hi,
>> I'm getting the following error message when compiling a Yesod
>> application (which uses Template Haskell rather a lot) with -fhpc:
>> /usr/bin/ld: ./Foundation.dyn_o: relocation R_X86_64_PC32 against
>> undefined symbol `_hpc_tickboxes_Settings_hpc' can not be used when
>> making a shared object; recompile with -fPIC
>> Steps to reproduce:
>> 1. Run 'yesod init' to make a new scaffold. Call it 'testsite' and
>> select 'simple' for no database.
>> 2. Run:
>> cd testsite
>> sed Settings.hs -i -e 's/staticRoot conf.*/staticRoot conf = "foo"/' #
>> GHC doesn't like this line
>> ghc --make app/main.hs  -XTemplateHaskell -XCPP -XOverloadedStrings
>> -XMultiParamTypeClasses -XTypeFamilies -fhpc -O1
>> Running the ghc line again completes successfully.
>> It seems that there is a missing ./Settings.dyn_o in the gcc command
>> line that ghc calls, the first time through. It's there the second
>> time so the link succeeds. No idea what that might mean.
>> It's not a problem at -O0.
>> I'm using 7.8.3 so this might be fixed now.
>> Not sure what else might help! Any advice gratefully received.
>> Cheers,
>> David

More information about the ghc-devs mailing list