[Hackage] #190: extension ForeignFunctionInterface should imply
-fvia-C for ghc
Hackage
trac at galois.com
Mon Dec 17 11:20:17 EST 2007
#190: extension ForeignFunctionInterface should imply -fvia-C for ghc
--------------------------+-------------------------------------------------
Reporter: duncan | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Cabal | Version: 1.2.3.0
Severity: normal | Resolution:
Keywords: | Difficulty: normal
Ghcversion: 6.8.1 | Platform: Linux
--------------------------+-------------------------------------------------
Comment (by guest):
Note that `-fvia-C` can hide some problems, as well as exposing others, in
a library. Typically you should test with both. The main problem is that
`-fvia-C` sees definitions from header files, so if an identifier has been
`#defined` to something else, then `-fvia-C` will see it, but `-fasm`
won't. A good example is the A-vs-W functions on Windows: `OpenFile` is
`#define`d to `OpenFileA` or `OpenFileW` depending on whether unicode
support is enabled. The FFI declaration should use `OpenFileW` directly,
so that it works with `-fasm`. Also, if you get the calling convention
wrong on Windows (e.g. `ccall` instead of `stdcall`), then `-fvia-C` will
hide the error, because it will see the C prototype with the correct
calling convention annotation.
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/190#comment:1>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list