This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Trying to port libffi to OpenVMS.


On 02/13/2015 03:48 PM, John E. Malmberg wrote:
> On 2/13/2015 8:41 AM, Richard Henderson wrote:
>> On 02/13/2015 06:00 AM, John E. Malmberg wrote:
>>> I was able to apply Philippe Vouters patches for Libffi 3.0.9 to libffi 3.1 and
>>> get the code building.  I was unable to get the tests to run under GNV though.
>>
>> I've never seen those patches but...
> 
> Not sure if I got them via E-mail from someone else, or from his site. His site
> is not responding at this time.
> 
> The readme says that they include HP-UX/ia64 and VMS/Alpha and VMS/ia64.  What
> I have appears to be bunch of concatenated unified diffs.  I can gzip it and
> forward it to anyone that is interested, uncompressed it is 126 KB.

Sure.

> I think VMS and Tru64 share a calling standard on Alpha, but I am not sure. 

Definitely not.

> VMS on Itanium uses ELF binaries and calling standard with a few extensions to
> ELF.

The calling standard is different enough that you'll definitely need changes to
the C code, and at least a small change to the assembly to set up the r25
"argument information" register.

> In any case, on VMS, the "int lib$callg(void **args, int (*func)())" hides all
> that though.

I'd be very surprised if this actually passes the testsuite, as you're not
giving lib$callg any information about the types of the arguments.

This is probably one of those things that worked find on VAX, but only works on
Alpha and IA-64 for integer arguments, and a limited number of them at that.

> The use of the lib$callg() routine means I should not need any assembly
> language code at all.  Probably almost the same source for all three current
> VMS harware platforms.

I'm sure you're going to have to write assembly, at least for Alpha.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]