Python 2.7 在Solaris 10上从源代码安装Python加密软件包

Python 2.7 在Solaris 10上从源代码安装Python加密软件包,python-2.7,build,solaris-10,python-cffi,python-cryptography,Python 2.7,Build,Solaris 10,Python Cffi,Python Cryptography,我正在尝试在Solaris 10系统上安装Python包。我已经在我的主目录中从源代码构建了Python2.7和libffi。我可以通过指定libffi的路径来构建cffi: $ python setup.py build_ext --include-dirs ~/libffi/lib/libffi-3.2.1/include --library-dirs ~/libffi/lib 但是,尝试构建加密失败,出现以下错误: ImportError: ld.so.1: python: fatal:

我正在尝试在Solaris 10系统上安装Python包。我已经在我的主目录中从源代码构建了Python2.7和libffi。我可以通过指定libffi的路径来构建cffi:

$ python setup.py build_ext --include-dirs ~/libffi/lib/libffi-3.2.1/include --library-dirs ~/libffi/lib
但是,尝试构建加密失败,出现以下错误:

ImportError: ld.so.1: python: fatal: relocation error: file /export/home/ef/python/lib/python2.7/site-packages/cffi-1.9.1-py2.7-solaris-2.10-sun4v.32bit.egg/_cffi_backend.so: symbol __sync_synchronize: referenced symbol not found
我已将
LD\u LIBRARY\u PATH
设置为
/export/home/ef/libffi/lib

当我编译cffi时,我注意到以下警告-它是否相关

c/call_python.c:219: warning: implicit declaration of function `__sync_synchronize'

我如何解决这个问题?我在网上发现的所有类似问题都是通过安装相关的操作系统软件包(
sudo-apt-get-install-build-essential-libssl-dev-libffi-dev-python-dev
)解决的。OpenCSW不是一个选项。

\uu sync\u synchronize
是一个内置函数,但它仅受gcc和clang支持。我猜您使用的是不同的编译器,或者是非常旧的gcc或clang版本。您可以尝试从cffi中继安装吗?我们最近添加了对一些其他编译器的支持(尚未发布,将在1.10版中发布)


,下载“默认”分支(例如,单击
gz
)。

谢谢您的回复。我使用的是gcc版本3.4.3。我已经按照建议从主干(cffi-cffi-3234afed406d.tar.gz)编译了cffi。然而,当我尝试构建加密时,仍然会遇到同样的致命错误:重新定位错误。这确实是一个非常古老的gcc。如果我发现添加了
\uu sync\u synchronize()
,我应该添加一个版本检查。同时,您可以编辑文件
call_python.c
第180行,将
#if defined(u_GNUC_#
替换为
#if 0
(然后您会得到一个警告,如果您没有在嵌入式模式下进行多线程初始化,则可以忽略该警告),非常感谢。比升级gcc容易得多!:)应在默认分支中修复。