libffi for ia64
CH Gowri Kumar
gkumar@csa.iisc.ernet.in
Fri Nov 22 12:41:00 GMT 2002
Hi Jim,
> You are right, but it isn't clear if this is a bug or not. This is a bug
> only if something is not working correctly, and you haven't reported anything
> broken.
Well, I felt that the entry missing itself should be enough. The reason
which I felt is:
#if defined ALPHA || defined SPARC64 || defined X86_64 || defined S390X
FFI_INTEGRAL_TYPEDEF(pointer, 8, 8, FFI_TYPE_POINTER);
46
49 #else
50
51 FFI_INTEGRAL_TYPEDEF(pointer, 4, 4, FFI_TYPE_POINTER);
52
53 #endif
For all the above processors the size of pointer is defined as 8,otherwise
4. But for IA64 also the size of pointer should be 8, but is missing.(hope
the same applies at other places also)
Regarding the actual source where the thing is broken:
I am using Portable .NET which use libffi to findout the size of pointer
types as follows(in one their files):
/* Everything else is laid out as a pointer */
180 #if defined(HAVE_LIBFFI)
181 layout->size = ffi_type_pointer.size;
182 layout->alignment = ffi_type_pointer.alignment;
When i checked the size of pointer it gave me 4 instead of 8. Hence
thought the field missing in types.c. I myself added the condition for
IA64 wherever x86-64 is there and got the appropriate result.
I would try writing a small independent file and let u know more details.
But till then I hope the above explanation would be of some help.
Also, I downloaded the latest CVS from gcc. I am trying to figure it but
cribs saying:
configure: error: can not find install-sh or install.sh in ./../..
././../..
It's trying to find out the install.sh from two levels up,whereas it is
available just one level up.(I have all the other gcc stuff required for
libffi in the aprent directory) I am new to this configure and all. Didn't
know where to change the appropriate settings etc.
Regards,
Gowri Kumar
>
> sourceware.cygnus.com is the old name for sources.redhat.com.
>
> Jim
>
More information about the Gcc
mailing list