This is the mail archive of the
libffi-discuss@sourceware.org
mailing list for the libffi project.
Re: Compilation with Intel icc 11.1 fails
- From: Anthony Green <green at moxielogic dot com>
- To: David Chin <david dot w dot h dot chin at gmail dot com>
- Cc: libffi-discuss at sourceware dot org
- Date: Mon, 23 Jan 2012 13:58:31 -0500
- Subject: Re: Compilation with Intel icc 11.1 fails
- References: <CADvq7Zdtm2hMb37pgDJO8F5mJrkrkAXOff3eawr2GemLr_9GcQ@mail.gmail.com>
On Fri, Dec 23, 2011 at 10:42 AM, David Chin <david.w.h.chin@gmail.com> wrote:
> I discovered this while trying to compile Python-2.7.2 with icc 11.1,
> so I downloaded libffi-3.0.10 separately and tried compiling that. The
> compilation fails with this:
>
> ? ?libtool: compile: ?icc -DHAVE_CONFIG_H -I. -I.. -I. -I../include
> -Iinclude -I../src -g -O3 -ansi_alias -Wall -fexceptions -MT
> src/x86/ffi64.lo -MD -MP -MF src/x86/.deps/ffi64.Tpo -c
> ../src/x86/ffi64.c ?-fPIC -DPIC -o src/x86/.libs/ffi64.o
> ? ?../src/x86/ffi64.c(44): error: identifier "__int128_t" is undefined
> ? ? ? ?__int128_t sse[MAX_SSE_REGS];
> ? ? ? ?^
>
> I found an old thread from 2009 discussing this:
> ? ?http://sourceware.org/ml/libffi-discuss/2009/msg00051.html
>
> I also found a post at Intel's forum suggesting a workaround:
> ? ?http://software.intel.com/en-us/forums/showthread.php?t=56652
>
>> Engineering team is still working on this feature. ?Here is a workaround:
>>
>> do
>>
>> typedef struct { int64_t m[2]; } __int128_t;
>>
>> and then change where the uint64_t is assigned to this to be:
>>
>> sse[x].m[0] = *(uint64_t*) v;
>> sse[x].m[1] = 0;
>>
>> and where the uint32_t is assigned to:
>>
>> sse[x].m[0] = *(uint32_t*) v;
>> sse[x].m[1] = 0;
>
> Are there plans to modify libffi to work around this deficiency in Intel icc?
I'm not aware of any plans, but patches are always welcome.
Thanks,
Anthony Green
>
> Thanks!
> --Dave Chin
> Email: david.w.h.chin AT gmail.com
> http://www.wfu.edu/~chindw/Work