[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Pkg-haskell-maintainers] libffi changes - help needed



On Fri, Mar 30, 2012 at 08:27:24AM +0100, peter green wrote:
>Joachim Breitner wrote:
>>I know little about libffi and what the actually issue is
>The issue is that for some reason the designers of arm eabi included
>the following rule.
>
>"A variadic function is always marshaled as for the base standard."
>
>The implication of this is that any variant of EABI other than the
>base standard (such as the variant used by armhf) will marshall
>functions differently depending on whether they are variadic or
>not. In the particular case of armhf a non-variadic function will
>pass floating point variables in VFP registers (or on the stack
>when VFP registers run out) while a variadic function will pass
>them in integer registers (or on the stack when integer registers
>run out).
>
>Which in turn means anything that calls a function (whether
>calling them directly or calling them through a wrapper like
>libffi) must know if they are variadic or not. For direct calls
>from C this information is given in the function prototype.
>
>>I believe, though, that to fix this issue
>>you will only have to worry about the run time system of Haskell,
>>implemented in C, and not touch any Haskell code.
>That depends if the runtime system already has enough information
>to know if the functions it is trying to call are variadic or not. If it
>doesn't then changes would be needed to pass the information
>to the runtime.

Exactly, that's the bit I'm unclear about. Does Haskell even have the
concept of variadic function calls? (I honestly don't know!)

-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
"Every time you use Tcl, God kills a kitten." -- Malcolm Ray


Reply to: