This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: libffi and powerpc sys V struct passing problem
- From: Geoff Keating <geoffk at geoffk dot org>
- To: toa at pop dot agri dot ch
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 10 Jan 2003 11:38:29 -0800
- Subject: Re: libffi and powerpc sys V struct passing problem
- References: <3E1F0FCD.8080508@pop.agri.ch>
> Date: Fri, 10 Jan 2003 19:24:13 +0100
> From: Andreas Tobler <toa@pop.agri.ch>
> User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.3a) Gecko/20021212
> X-Accept-Language: en-us, en
> Cc: GCC <gcc@gcc.gnu.org>
> X-OriginalArrivalTime: 10 Jan 2003 18:24:16.0659 (UTC) FILETIME=[7BEED630:01C2B8D5]
>
> Hi,
>
> is this still true?
>
> from the libffi README:
> ---
> EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a
> inconsistency with the SysV ABI: When a procedure is called with many
> floating-point arguments, some of them get put on the stack. They are
> all supposed to be stored in double-precision format, even if they are
> only single-precision, but EGCS stores single-precision arguments as
> single-precision anyway. This causes one test to fail (the `many
> arguments' test).
> ---
> I run a test in libffi which should test many args.
>
> The ffitest mentions many arg tests failed! This is a gcc bug.
>
> In my test I pass the following:
> typedef int (*closure_test_type2)(double, double, double, double,
> signed short, double, double, int, double, int, float, int,
> float, int, int);
>
> On darwin it works but on ppc linux not. So I wonder if I have a bug in
> libffi or if it is this thing mentioned above.
This is the thing mentioned above.
--
- Geoffrey Keating <geoffk@geoffk.org>