This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Alex.Leach
Recipients Alex.Leach, Arfrever, jared.jennings, loewis, meador.inge, skrah, theller
Date 2012-04-15.22:47:30
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1334530051.46.0.807993524662.issue4130@psf.upfronthosting.co.za>
In-reply-to
Content
Submitting a working patch upstream would make sense.. Just found, downloaded and tried compiling libffi-3.0.11. The developers have made some changes towards a solution, but compilation fails with the same error:-

libtool: compile:  icc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -DFFI_BUILDING -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(50): error: identifier "__m128" is undefined
    UINT128 sse[MAX_SSE_REGS];


__m128 is defined in Intel's xmmintrin.h though [http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/compiler_c/intref_cls/common/intref_sse_arithmetic.htm].

So I added the necessary include line, which gets a different error:-

libtool: compile:  icc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -DFFI_BUILDING -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(481): error: a value of type "UINT64={unsigned long}" cannot be assigned to an entity of type "__m128"
                  reg_args->sse[ssecount++] = *(UINT64 *) a;
                                            ^

../src/x86/ffi64.c(484): error: a value of type "UINT32={unsigned int}" cannot be assigned to an entity of type "__m128"
                  reg_args->sse[ssecount++] = *(UINT32 *) a;
                                            ^

Regarding my previous patch, I'm not convinced it works actually.. It compiles, and passes the default Python tests, but I get some dodgy behaviour. e.g. when compiling 2.7.3 with --enable-shared, I get a segfault when compiling the gdbm module against libdb4.8-dev. Any specific ways of testing the build?
History
Date User Action Args
2012-04-15 22:47:31Alex.Leachsetrecipients: + Alex.Leach, loewis, theller, Arfrever, jared.jennings, skrah, meador.inge
2012-04-15 22:47:31Alex.Leachsetmessageid: <1334530051.46.0.807993524662.issue4130@psf.upfronthosting.co.za>
2012-04-15 22:47:30Alex.Leachlinkissue4130 messages
2012-04-15 22:47:30Alex.Leachcreate