This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [libobjc] Rewrite message forwarding to use libffi
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Alexander Malmberg <alexander at malmberg dot org>
- Cc: gcc-patches at gcc dot gnu dot org, Andrew Pinski <pinskia at physics dot uc dot edu>
- Date: Sun, 12 Dec 2004 15:23:06 -0800
- Subject: Re: [libobjc] Rewrite message forwarding to use libffi
- Organization: CodeSourcery, LLC
- References: <41BBB467.5040200@malmberg.org>
Alexander Malmberg wrote:
What ffi type should I map long long ints to? ffi has macros for all
other basic int types, but not for long long ints. Currently, I assume
that long long ints are always 64 bits and map to ffi_type_[su]int64.
You should at least add an assertion and comment to that affect.
Unfortunately, the patch also causes four new failures compared to a
clean tree.
I think those issues need to be resolved.
I don't know how this will affect other platforms. I'd expect the
ffi-based forwarding to work just as well on all platforms supported by
libffi, but I don't know what to expect from __builtin_apply on other
platforms, or if there are platforms unsupported by libffi where
__builtin_apply works well. However, from what I understand,
__builtin_apply is pretty evil. :)
I think you are asking the right questions, but you need to get the
answers. Which platforms do not support libffi, and are those platforms
important?
Mark: Andrew told me to tell you that this is a regression, that
rewriting libobjc to use libffi is the easiest way of fixing it, and
that he's approved the libobjc parts.
OK for mainline?
I've delegated decisions like this to the appropriate maintainers, so I
think it's up to the Objective-C people to make a decision. However, I
would encourage them to be conservative. My personal opinion is that
this patch is a great step in the right direction, but doesn't quite go
far enough. For example, on platforms where libffi is not supported,
perhaps you should fall back to the original mechanism. Perhaps you
should fix the double/long double problem. In other words, I feel like
there are some loose ends that should be tied off before this patch is
checked in.
--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com
(916) 791-8304