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 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.

I am now trying to build master from a git checkout, and have gotten lost with
the changes to src/alpha/ffi.c since then, so I am looking for some guidance on
how to get libffi from master building.

... I know that the ABI for vms is significantly different from unix.
I'd be surprised if the patches were small.

I think VMS and Tru64 share a calling standard on Alpha, but I am not sure. VMS on Itanium uses ELF binaries and calling standard with a few extensions to ELF.

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

I don't know that there's a wiki, per se...

That is what the text at that web site says. It actually implies that it is posted on a WIKI.

What I should have done is read the libffi online manual instead of trying just to understand what Philippe did.

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.

Thanks for the reply.

Regards,
-John




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