This is the mail archive of the
libffi-discuss@sourceware.org
mailing list for the libffi project.
Re: Trying to port libffi to OpenVMS.
- From: "John E. Malmberg" <wb8tyw at qsl dot net>
- To: Richard Henderson <rth at redhat dot com>, libffi-discuss at sourceware dot org
- Date: Mon, 16 Feb 2015 13:42:20 -0600
- Subject: Re: Trying to port libffi to OpenVMS.
- Authentication-results: sourceware.org; auth=none
- References: <54DE0378 dot 8040609 at qsl dot net> <54DE0D25 dot 8020300 at redhat dot com> <54DE8D61 dot 803 at qsl dot net> <54E22522 dot 40909 at redhat dot com>
On 2/16/2015 11:13 AM, Richard Henderson wrote:
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.
Forwarded via e-mail.
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.
I am a bit concerned about that, so am setting up some experiments.
I can not run the testsuite at this time. The components for Deja-Gnu
do not appear to have been ported to VMS.
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 puts() example just worked. Using the atof() call is not putting
the correct values in the floating point return registers. That is
interesting because both are being passed a single string parameter.
I will try to get some more documentation on lib$callg.
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.
Quite possibly. I think though that the entire assembly module may be
better off being VMS specific instead of trying to use the osf modules
as in the patch.
Regards,
-John