[GHC] #13431: Linker error related to atan and ntdll on 32-bit Windows
GHC
ghc-devs at haskell.org
Fri Mar 17 21:03:16 UTC 2017
#13431: Linker error related to atan and ntdll on 32-bit Windows
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: Phyx-
Type: bug | Status: upstream
Priority: normal | Milestone: 8.4.1
Component: Compiler | Version: 8.0.1
Resolution: | Keywords:
Operating System: Windows | Architecture: x86
Type of failure: GHC rejects | Test Case:
valid program |
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Changes (by Phyx-):
* status: new => upstream
* milestone: => 8.4.1
Comment:
I believe this to be an upstream bug in `mingw-w64-crt`.
It seems that `ntdll.dll` undocumented exports a few functions such as
`atan`.
The import libraries are created by default using a tool that scrapes the
exports table of a dll and makes a `.def` file and then `dlltool` is
called to generate the library.
The problem is that this tool on the `x86` version seems to think these
functions are `DATA` references (e.g. readonly data) instead of functions.
And this it only exports `_imp__atan` instead of both `_atan` and
`_imp__atan`.
On `x64` the tool does get this correct.
{{{
Tamar at Kino MINGW64 ~/MINGW-packages/mingw-w64-crt-git/src/mingw-w64
$ find -iname ntdll.def | xargs grep atan
./mingw-w64-crt/lib32/ntdll.def:atan DATA
./mingw-w64-crt/lib64/ntdll.def:atan
./mingw-w64-crt/libarm32/ntdll.def:atan
}}}
This will require some upstream patching because controlling the link
order in all cases is very hard.
In the meantime since it seems that `Win32` is the only one that's
introducing this dependency, I think I can apply a patch locally there for
`x86`.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13431#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list