Компилятор Intel и Python / ctypes / libffi - PullRequest
1 голос
/ 17 августа 2010

У меня проблемы с созданием рабочей версии Python с ctypes с использованием Intel Compiler (11.1).Проблема в том, что libffi в модуле ctypes не работает должным образом при взаимодействии, например, с OpenGL.

Изначально libffi не компилировался с использованием компиляторов Intel, так как __int128_t не определено, и я следил за обходомкоторые были перечислены в нескольких местах, а именно путем определения нового типа:

typedef struct { int64_t m[2]; } __int128_t;

Это следует за ответом, данным Intel: http://software.intel.com/en-us/forums/showthread.php?t=56652

Затем патч предлагает что-то вроде этого:

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;

Применение патча, компиляция объектов и ctypes становятся доступными для импорта, однако при взаимодействии с OpenGL вещи не работают.Запуск примера программы PyQt hellogl.py приводит к пустому виду.

Есть ли лучший, рабочий способ сделать это?

Dan;

1 Ответ

3 голосов
/ 18 декабря 2010

Я автор libffi.Я рекомендую отправить записку на libffi-discuss@sourceware.org, содержащую все эти детали.Я также рекомендую запускать набор тестов libffi на libffi, встроенном в компилятор Intel.Обязательно отправьте результаты по адресу libffi-discuss@sourceware.org, и мы поможем выяснить проблему.

...