我--enable-fpm
在 Solaris 10 (sun4v sparc SUNW、Sun-Fire-T1000) 上编译 PHP,它停止在
#error Sparc v8 and predecessors are not and will not be supported (see bug report 53310)
出现错误后,我的 CPU 是 v9 ?为什么会出现错误?应如何通知编译以包含-mcpu=v9
?这有帮助吗?
编辑:
我尝试编译 5.3.8 和最新的 5.4.7 - 两者都出现错误。PHP 和 PHP-CGI 编译良好。
编辑2:
配置标志是 -
./configure--启用-fpm
答案1
它通常归结为比较和交换指令,该指令在 v8 中不可用,但在 v8+ 和更新的处理器中可用。
很难说哪里出了问题,因为你没有展示你的./configure
调用、相关的环境变量,也没有展示失败的确切位置(配置阶段?编译阶段?)。有时会有一个测试检查 v8+,但编写得很糟糕,导致失败。
错误发生的原因并不明显,因为现在编译器默认为 v8+,而不是 v8。如果您未设置任何内容,则应该获得 v8+ 二进制文件(适用于 32 位版本)和 v9 二进制文件(适用于 64 位版本)。
如果您想要发出您想要的构建信号-mcpu=v9
,请在环境变量中导出它CFLAGS
。
答案2
终于让它运行起来了。
需要使用以下设置进行编译。
export CC=gcc
export CFLAGS="-m64"
export CXX=gcc
export CXXFLAGS="-m64"
export LDFLAGS="-m64 -L/lib/64 -L/usr/sfw/lib/64"
export LD_LIBRARY_PATH="/usr/local/lib/sparcv9/:/usr/local/lib:/usr/local/apache2/lib:/usr/sfw/lib/sparcv9:/usr/local/lib/sparcv9:/usr/lib/sparcv9"
export LDFLAGS="-lrt"