scope of header files

Simon Marlow marlowsd at
Thu Apr 3 12:47:31 EDT 2008

Simon Marlow wrote:
> John Meacham wrote:
>> On Tue, Mar 11, 2008 at 02:47:37PM -0700, Simon Marlow wrote:
>>> Yeah, I'd like -fvia-C to be headerless.  We talked about it a while 
>>> back (on the haskell-prime list I think).  The main issue is that GHC 
>>> would have to generate prototypes based on the FFI declaration, and 
>>> since it can't guarantee to generate a prototype that is exactly the 
>>> same as the C prototype given in the header file (e.g. it doesn't 
>>> know about const), we would have to ensure that there really are no 
>>> other prototypes in scope, to prevent errors from the C compiler.
>> I was thinking that you just wouldn't include any extra c headers at all
>> then, just write out the appropriate c code to call with the conventions
>> specified in the ffi import specification and you won't need external
>> headers at all so there isn't anything to conflict with.
> Yes, pretty much.  There are a bunch of C headers that define the macros 
> used by the generated C code, and we have to be careful that they don't 
> include anything external - in the past we used to #include several 
> things from /usr/include, but I think we're much cleaner these days.

FYI, I've now done this: GHC 6.10 will consistently ignore c-includes 
and header files in FFI declarations.


More information about the Glasgow-haskell-users mailing list