Skip to content

Stdcall - treating as CCall (bogus warning on win 64 bit)

On windows you generally have the stdcall calling convention so you're average foreign import looks like this:

foreign import stdcall "someFile.h getFoo" getFoo :: IO Foo

But on a 64 bit system, GHC warns:

C:\Some\Path.hs:35:1: warning: [-Wunsupported-calling-conventions]
    * the 'stdcall' calling convention is unsupported on this platform, treating as ccall
    * When checking declaration:
        foreign import stdcall safe "static someFile.h getFoo" getFoo :: IO Foo

Both stdcall & ccall are not applicable to a 64 bit system as far as I know, and if it was really treating it as ccall it would have segfaulted at runtime. So the warning is a bit of a lie anyway.

So far some developers generally have resorted to creating c preprocessor macros like this: https://www.mail-archive.com/cvs-libraries@haskell.org/msg09725.html

Apologies if this is a dupe, I thought someone already reported this a long time ago but I can't seem to find the ticket.

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
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information