
#9909: Linker error (TemplateHaskell + HPC?) -------------------------------------+------------------------------------- Reporter: dcturner | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 Keywords: | Operating System: Architecture: Unknown/Multiple | Unknown/Multiple Difficulty: Unknown | Type of failure: Blocked By: | None/Unknown Related Tickets: | Test Case: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- 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 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. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9909 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler