Python 3.1.1 с --enable-shared: не собирает никаких расширений - PullRequest
2 голосов
/ 10 октября 2009

Резюме: Сборка Python 3.1 на RHEL 5.3 64 bit с --enable-shared не компилирует все расширения. Сборка "нормальная" работает нормально, без проблем.

Обратите внимание , что этот вопрос может показаться стирающим грань между программированием и системным администрированием. Тем не менее, я считаю, что, поскольку он должен иметь дело непосредственно с проблемами ОС и проблемами программирования, я бы сделал кросс-пост как на StackOverflow, так и на ServerFault. Также на Python 3.1.1 с --enable-shared: не будет строить никаких расширений . Спасибо!

Проблема:

Сборка Python 3.1 на 64-битной RHEL 5.3 с --enable-shared не компилирует все расширения. Сборка "нормальная" работает нормально, без проблем.

Я могу прекрасно собрать python 3.1, но при сборке в виде разделяемой библиотеки он выдает много предупреждений (см. Ниже) и отказывается создавать какие-либо модули на основе c. Несмотря на эту ошибку, я все еще могу собрать mod_wsgi 3.0c5 и запустить его под Apache. Излишне говорить, что функциональность Python значительно снижена ...

Интересно отметить, что Python 3.2a0 (из svn) прекрасно компилируется с --enable-shared, а mod_wsgi прекрасно компилируется с ним. Но при запуске apache я получаю:

Cannot load /etc/httpd/modules/mod_wsgi.so into server: /etc/httpd/modules/mod_wsgi.so: undefined symbol: PyCObject_FromVoidPtr

Проект, для которого он предназначен, является долгосрочным проектом, поэтому я согласен с программным обеспечением альфа-качества, если это необходимо. Вот еще несколько подробностей о проблеме.

Ведущий:

  • Dell PowerEdge
  • Intel Xenon
  • RHEL 5.3 64bit
  • Ничего особенного

Сложение:

  • Исходный код Python 3.1.1
  • Работает нормально с ./configure
  • Не работает нормально с ./configure --enable-shared

(export CFLAGS="-fPIC" сделано)

сделать вывод

<ч />

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -fPIC -DPy_BUILD_CORE -c ./Modules/_weakref.c -o Modules/_weakref.o

<ч />

building 'bz2' extension gcc -pthread -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -I/usr/local/include -IInclude -I/home/build/RPMBUILD/BUILD/Python-3.1.1 -c /home/build/RPMBUILD/BUILD/Python-3.1.1/Modules/bz2module.c -o build/temp.linux-x86_64-3.1/home/build/RPMBUILD/BUILD/Python-3.1.1/Modules/bz2module.o gcc -pthread -shared -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes build/temp.linux-x86_64-3.1/home/build/RPMBUILD/BUILD/Python-3.1.1/Modules/bz2module.o -L/usr/local/lib -L. -lbz2 -lpython3.1 -o build/lib.linux-x86_64-3.1/bz2.so /usr/bin/ld: /usr/local/lib/libpython3.1.a(abstract.o): relocation R_X86_64_32 against 'a local symbol' can not be used when making a shared object; recompile with -fPIC

<ч />
Failed to build these modules:
_bisect            _codecs_cn         _codecs_hk
_codecs_iso2022    _codecs_jp         _codecs_kr
_codecs_tw         _collections       _csv
_ctypes            _ctypes_test       _curses
_curses_panel      _dbm               _elementtree
_gdbm              _hashlib           _heapq
_json              _lsprof            _multibytecodec
_multiprocessing   _pickle            _random
_socket            _sqlite3           _ssl
_struct            _testcapi          array
atexit             audioop            binascii
bz2                cmath              crypt
datetime           fcntl              grp
itertools          math               mmap
nis                operator           ossaudiodev
parser             pyexpat            readline
resource           select             spwd
syslog             termios            time
unicodedata        zlib
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...