Skip to content

curl dependency in conjunction with Template Haskell causes "unknown symbol" errors

I've reported on this issue to the stack issue tracker here https://github.com/commercialhaskell/stack/issues/2752#issuecomment-257378515

The steps to reproduce are the following

  • Make a new stack project (lts-5.3 in my case). stack new curl-test -resolver=lts-5,3
  • Add curl as a dependency to the library.
  • Modify the Lib file to the following
{-# LANGUAGE TemplateHaskell #-}
module Lib where

return []

someFunc :: IO ()
someFunc = return ()

The error that I get with GHC 8 is this

ghc.EXE: unable to load package `curl-1.3.8'
ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `stricmp'

ghc.EXE: Could not on-demand load symbol 'curl_strequal'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `curl_strequal'

ghc.EXE: Could not on-demand load symbol '.refptr.Curl_cstrdup'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `.refptr.Curl_cstrdup'

ghc.EXE: Could not on-demand load symbol 'curl_slist_free_all'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `curl_slist_free_all'

ghc.EXE: Could not on-demand load symbol 'Curl_ssl_connect_nonblocking'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `Curl_ssl_connect_nonblocking'

ghc.EXE: Could not on-demand load symbol '.refptr.Curl_crealloc'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `.refptr.Curl_crealloc'

ghc.EXE: Could not on-demand load symbol 'curl_msnprintf'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `curl_msnprintf'

ghc.EXE: Could not on-demand load symbol '.refptr.Curl_cmalloc'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `.refptr.Curl_cmalloc'

ghc.EXE: Could not on-demand load symbol 'Curl_verify_windows_version'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `Curl_verify_windows_version'

ghc.EXE: Could not on-demand load symbol 'Curl_sspi_global_init'

ghc.EXE: C:\Users\darwi\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib\libcurl.a: unknown symbol `Curl_sspi_global_init'

ghc.EXE: Could not on-demand load symbol 'curl_global_init'

ghc.EXE: C:\sr\snapshots\df48cbae\lib\x86_64-windows-ghc-8.0.1\curl-1.3.8-B8AxMCtSRkiFrZLK4gerBe\HScurl-1.3.8-B8AxMCtSRkiFrZLK4gerBe.o: unknown symbol `curl_global_init'

but this still fails with GHC 7.10.3 with a similar error.

This is happening on two Windows 10 machines so it's not an isolated case.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system Unknown/Multiple
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information