patch applied (packages/base): Avoid calling varargs functions using the FFI

Simon Marlow marlowsd at gmail.com
Tue May 13 04:20:22 EDT 2008


Don Stewart wrote:
> simonmarhaskell:
>> Fri May  9 07:53:34 PDT 2008  Simon Marlow <marlowsd at gmail.com>
>>   * Avoid calling varargs functions using the FFI
>>   Calling varargs functions is explicitly deprecated according to the
>>   FFI specification.  It used to work, just about, but it broke with the
>>   recent changes to the via-C backend to not use header files.
>>
>>     M ./Control/Exception.hs -1 +3
>>     M ./Debug/Trace.hs -1 +3
>>     M ./cbits/PrelIOUtils.c +9
>>     M ./include/HsBase.h +3
>>
> 
> The other thing that broke was importing functions from headers also
> used in the rts.
> 
> Try the 'cmath' library, which binds to everything in math.h, lots of
> funky symbol duplicates leading to failure.

Hmm, that's a pain.  I think we have to #include math.h in order to 
implement the floating point primops, but then we have to know which 
functions are declared by math.h and avoid declaring them in the generated 
C.  I can add more functions to the list of exceptions, I suppose, but it's 
non-portable and ugly.  I need to think some more about this.

Cheers,
	Simon


More information about the Cvs-libraries mailing list