Linker error (TemplateHaskell + HPC?)
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:
- Run
yesod initto make a new scaffold. Call ittestsiteand
select simple for no database.
- Run:
cd testsite
ghc --make app/main.hs -XTemplateHaskell -XCPP -XOverloadedStrings -XMultiParamTypeClasses -XTypeFamilies -XQuasiQuotes -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.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.8.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown/Multiple |
| Architecture | Unknown/Multiple |