Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Binding C libraries which use variable arguments (stdarg.h)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Adrien <camaradetux@g...>
Subject: Re: [Caml-list] Binding C libraries which use variable arguments (stdarg.h)
On 01/11/2009, Florian Weimer <fw@deneb.enyo.de> wrote:
> * Adrien:
>
>> On 01/11/2009, Florian Weimer <fw@deneb.enyo.de> wrote:
>>> * Adrien:
>>>
>>>> It turned out it worked on linux x86_32, linux x86_64, netbsd sparc64
>>>> with 32-bit userland, debian's kfreebsd amd64 and ppc32. There's
>>>> windows which I haven't checked yet though.
>>>
>>> x86_64 has different calling conventions for varargs and non-varargs
>>> functions.  If it works for you, it's only by accident (e.g. because
>>> you aren't passing floating-point arguments).
>>>
>>
>> I tried a few things with "double" at first since I'm on x86_64 and
>> got no warning and no problem whatsoever.
>
> Could you check if libffi sets the %rax register to the number of
> floating-point arguments?  (I've seen this working by mere chance in
> many cases.)
>

Unfortunately I don't know much about asm, I tried to check but failed
(couldn't find what "leaq" meant).
I found a few references indicating that libffi was properly doing that however.

 ---

Adrien Nader