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.                                st...@einval.com
"Every time you use Tcl, God kills a kitten." -- Malcolm Ray


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20120330103837.ga20...@einval.com

Reply via email to