在英特尔平台上编译 rsync 时,Solaris cc 出现段错误

在英特尔平台上编译 rsync 时,Solaris cc 出现段错误

我正在尝试在 Intel 芯片组上的 Solaris 5.10 上编译 rsync-3.0.7。

运行时./configure我看到以下内容(显然是错误的行):

checking size of int... 0
checking size of long... 0
checking size of long long... 0
checking size of short... 0
checking size of int16_t... 0
checking size of uint16_t... 0

config.log看到以下几行:

configure.sh:5448: /tool/sunstudio12.1/bin/cc -xc99=all -o conftest -g -DHAVE_CONFIG_H   conftest.c  >&5
"conftest.c", line 123: warning: statement not reached
cc: Fatal error in cc : Segmentation Fault
configure.sh:5448: $? = 1
configure.sh: program exited with status 1

分段错误?什么原因导致一个简单的测试脚本在编译过程中出现分段错误?

答案1

这不会解决你的编译问题,但你可以随时考虑使用 opencsw repohttp://opencsw.org/他们已经编译了这个版本的 rsync,并且有一个叫做 pkg-get 的实用应用程序来执行安装

答案2

我遇到了同样的问题,但无法使用-xc99=all,no_lib解决方法(我构建的程序需要所有 c99 功能),并尝试在 truss 下手动运行 cc 命令。它显示在尝试打开后立即发生段错误/lib/values-xpg6.o。此文件不存在,但可在SUNWarc包中找到。我安装了它,段错误就消失了。

我不完全确定根本原因是什么,但这应该可以帮助上述解决方法失败的人。

答案3

该选项-xc99=all导致段错误。可以找到该选项的描述这里它表明默认值为-xc99=all,no_lib(不会导致编译器段错误)。

为了使configure脚本正常工作,我configure.sh对其进行了编辑,并将实例替换-xc99=all-xc99=all,no_lib

回答了我自己的问题,以便其他遇到此问题的人可以尝试建立解决方法。

相关内容