This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: PATCH: Fix libffi for ia64


On Tue, 2004-05-04 at 08:45, H. J. Lu wrote:
> fixed other problems. BTW, should we back port mine and Andreas's
> patch to gcc 3.4?

I don't know.  I don't know what problems you are fixing here, or now
important they are.

By the way, I am very uncomfortable doing libffi work.  libffi violates
FSF copyright policy.  rms has explicitly asked the GCC SC to fix this. 
That was about 9 months ago, and nothing seems to have happened.  I was
hoping to get an answer from Anthony on this issue.  As a GCC SC member,
I need to respect rms's wishes here.  I think it would be hypocritical
for me to do libffi work while this issue remains unresolved.

Best case solution, we get libffi contributed to the FSF.  Worst case
solution, we remove libffi from the CVS repository.  Compromise
solution, we create an external repository for it and make that the
upstream source for libffi, which would then follow the same rules as
other parts of gcc that have upstream sources.  This could be as simple
as creating a nongnu project on savannah.gnu.org.  Or we could resurrect
the libffi project on sources.redhat.com.

While looking at this patch, I noticed that the libffi/src/ia64/ffi.c
file has an HP copyright notice in it.  It is bad enough that libffi is
mostly Cygnus/Red Hat copyrights, but having copyrights from other 3rd
patches just makes the situation even worse.

Maybe this is something we can discuss at the GCC Summit.

> 	* src/ia64/ffi.c (is_homogeneous_fp_aggregate): Fix the
> 	recursive call.
> 	(ffi_closure_UNIX_inner): Handle HFA return.
> 	(ffi_prep_incoming_args_UNIX): Fix structure argument.
> 	* libffi/src/ia64/unix.S (ffi_call_unix): Add a stop bit
> 	between read and write. Don't override the structure return
> 	address. Use stfs to load float.

This looks OK to me, to the extent that I am willing to even look at
libffi.

We are missing support for long double hfas, but this gets a little
tricky as a structure of long doubles is an hfa only if long double is a
80/96 bit type.  If long double is a 128-bit type, then a structure of
long doubles is not an hfa.  So this will depend on the ABI.  Also, the
long double support is confused because the original IA-64 libffi port
was done before gcc had 80/96 bit long double support, so all of the
IA-64 libffi long double support probably still assumes they are 64-bit
values.  This is mostly stuff I noticed before I stopped trying to work
on libffi.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com


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