GHC 9.4+: mingwex dependency causes linker errors when MinGW-w64 is in LIBRARY_PATH
(Originally spun out of a discussion at https://github.com/Mistuke/CabalChoco/issues/5.)
I recently discovered that if you add /mingw64/lib
to your LIBRARY_PATH
, then any code that uses Template Haskell will fail to link with GHC 9.4.2 on Windows. Here is a minimal example:
{-# LANGUAGE TemplateHaskell #-}
module Main where
import Language.Haskell.TH
main :: IO ()
main = putStrLn $([| "hello" |])
With no LIBRARY_PATH
, this succeeds:
$ ghc-9.4.2 Bug.hs -fforce-recomp && ./Bug.exe
[1 of 2] Compiling Main ( Bug.hs, Bug.o )
[2 of 2] Linking Bug.exe
hello
If I set LIBRARY_PATH=/mingw64/lib
, however, then this fails with the following linker error:
$ LIBRARY_PATH=/mingw64/lib ghc-9.4.2 Bug.hs -fforce-recomp && ./Bug.exe
[1 of 2] Compiling Main ( Bug.hs, Bug.o )
Symbol type mismatch.
Symbol _abs64 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _byteswap_uint64 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _byteswap_ulong was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _byteswap_ushort was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol lfind was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol lsearch was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol swab was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol imaxabs was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol imaxdiv was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol llabs was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol lldiv was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol iscsymf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol iscsym was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol isascii was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol memicmp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol memccpy was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strcmpi was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol stricmp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strdup was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strlwr was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strnicmp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strnset was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strrev was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strset was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol strupr was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsdup was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsicmp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsicoll was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcslwr was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsnicmp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsnset was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsrev was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsupr was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol wcsset was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol isblank was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol iswblank was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol towctrans was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wctype was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol __stdio_common_vswprintf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol __stdio_common_vswprintf_s was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol chsize was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol creat was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol close was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol dup was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol eof was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol dup2 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol fgetchar was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol filelength was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol fileno was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol fputchar was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol getcwd was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol getw was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol isatty was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol kbhit was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol mktemp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol lseek was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol open was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol putw was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol read was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol rmtmp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol setmode was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol sopen was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol tell was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol tempnam was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol write was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol _Exit was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _errno was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol getpid was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol cwait was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execle was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execlpe was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execlp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execv was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execve was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execvpe was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol execvp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnlpe was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnle was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnlp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnve was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnvp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnv was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol spawnvpe was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol fdopen was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol j0 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol j1 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol jn was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol y1 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol yn was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol y0 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol acosh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol acoshf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol asinh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol asinhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol atanh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol atanhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cabs was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cabsf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cabsl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cacos was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cacosf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cacosh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cacoshf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cacoshl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cacosl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol carg was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cargf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cargl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol casin was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol casinf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol casinh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol casinhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol casinhl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol casinl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol catan was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol catanf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol catanh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol catanhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol catanhl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol catanl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cbrt was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cbrtf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ccos was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ccosf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ccosh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ccoshf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ccoshl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ccosl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cexp was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cexpf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cexpl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cimag was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cimagf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cimagl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol clog was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol clog10 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol clog10f was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol clog10l was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol clogf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol clogl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol conj was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol conjf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol conjl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol copysign was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol copysignf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cpow was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cpowf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cpowl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cproj was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cprojf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol cprojl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol creal was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol crealf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol creall was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csin was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csinf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csinh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csinhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csinhl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csinl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csqrt was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csqrtf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol csqrtl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ctan was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ctanf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ctanh was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ctanhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ctanhl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ctanl was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol erf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol erfc was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol erfcf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol erff was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol exp2 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol exp2f was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol expm1 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol expm1f was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fdim was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fdimf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fma was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fmaf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fmax was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fmaxf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fmin was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol fminf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol hypot was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ilogb was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol ilogbf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol llrint was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol llrintf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol llround was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol llroundf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol log1p was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol log1pf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol log2 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol log2f was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol logb was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol logbf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol lrint was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol lrintf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol lround was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol lroundf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol nan was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol nanf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol nearbyint was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol nearbyintf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol nextafterf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol remainder was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol remainderf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol rint was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol rintf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol round was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol roundf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol scalbn was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol scalbnf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol tanhf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol tgamma was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol tgammaf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol trunc was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol truncf was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol chdir was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol chmod was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol _findfirst64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _findnext64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _fstat64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _lock_file was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol rmdir was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol mkdir was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol _stat64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol umask was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol _unlock_file was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol unlink was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol _wfindfirst64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _wfindnext64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol _wstat64i32 was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol putenv was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol toascii was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol ecvt was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol gcvt was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol fcvt was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol itoa was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol ltoa was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol atoll was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol btowc was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol strtof was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol strtoimax was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol strtoll was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol strtoull was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol strtoumax was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wcstof was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wcstoimax was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wcstoll was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wcstoull was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wcstoumax was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wctob was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol wctrans was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by C:\msys64\mingw64\lib\libmingwex.a to be a code symbol.
Symbol type mismatch.
Symbol getch was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol getche was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol putch was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
Symbol type mismatch.
Symbol ungetch was defined by C:\msys64\mingw64\lib\libucrt.a to be a data symbol.
yet was defined by <builtin> to be a code symbol.
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `__imp___p__environ'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `__hscore_get_errno'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_ForeignziCziError_errnoToIOError_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziWindows_failIf2_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziIOziEncodingziCodePageziAPI_mkCodePageEncoding_info'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziIOziEncodingziCodePage_currentCodePage_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziIOziEncoding_getForeignEncoding_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_ForeignziCziString_withCStringLen1_info'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziIOziHandleziInternals_zdwflushCharReadBuffer_info'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziIOziHandleziText_hGetBuf1_info'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziFingerprint_fingerprintString_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_DataziTypeableziInternal_mkTrCon_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziException_errorCallWithCallStackException_closure'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\base-4.17.0.0\libHSbase-4.17.0.0.a: unknown symbol `base_GHCziErr_error_info'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\template-haskell-2.19.0.0\libHStemplate-haskell-2.19.0.0.a: unknown symbol `base_DataziMaybe_fromJust1_info'
ghc-9.4.2.exe: | C:\ghcup\ghc\9.4.2\lib\x86_64-windows-ghc-9.4.2\template-haskell-2.19.0.0\libHStemplate-haskell-2.19.0.0.a: unknown symbol `templatezmhaskell_LanguageziHaskellziTHziSyntax_zdp1Quasi_info'
ghc-9.4.2.exe: ^^ Could not load 'templatezmhaskell_LanguageziHaskellziTHziLibziInternal_stringL_closure', dependency unresolved. See top entry above.
<no location info>: error:
GHC.ByteCode.Linker.lookupCE
During interactive linking, GHCi couldn't find the following symbol:
templatezmhaskell_LanguageziHaskellziTHziLibziInternal_stringL_closure
This may be due to you not asking GHCi to load extra object files,
archives or DLLs needed by your current session. Restart GHCi, specifying
the missing library using the -L/path/to/object/dir and -lmissinglibname
flags, or simply by naming the relevant files on the GHCi command line.
Alternatively, this link failure might indicate a bug in GHCi.
If you suspect the latter, please report this as a GHC bug:
https://www.haskell.org/ghc/reportabug
According to @Phyx, this is an issue in GHC itself. Specifically, the base
, ghc-prim
, and rts
libraries unnecessarily depend on the mingwex
library here, here, and here respectively. These dependencies are no longer necessary since Clang links against UCRT instead.