在Sparc架构Solaris 9系统中编译Git源码报错问题咨询
解决Sparc架构Solaris 9系统编译Git报错问题
报错原因分析
- 你使用的Git源码版本过新:新版Git的Makefile大量使用了高版本GNU make、高版本GCC才支持的语法和特性,你当前的gcc 3.4.6、make 3.82无法适配。
- 编译文档依赖缺失:
all doc info参数要求编译文档,不仅依赖asciidoc、xmlto等你环境未安装的工具,部分构建步骤还会调用已存在的git二进制生成版本标识,触发git: not found报错。 - Makefile语法适配问题:新版Git Makefile的变量写法和你当前的GNU make 3.82不兼容,直接触发
unterminated variable reference报错。
可行编译步骤
- 首先更换适配老系统的Git源码版本,选择2.17.x及更早的LTS版本,不要使用2.18以上的Git源码。
- 调整编译参数,跳过不需要的依赖和文档编译,手动指定版本号避免调用git二进制:
make prefix=/usr/local \ CC=gcc \ NEEDS_LIBICONV=YesPlease \ NO_GETTEXT=YesPlease \ GIT_VERSION=你的源码对应版本号(例如2.17.6) \ NO_DOC=YesPlease \ NO_TCLTK=YesPlease \ all
- 编译无报错后执行安装:
make prefix=/usr/local install
如果编译过程中报zlib相关错误,你需要额外安装zlib的sparc-solaris9预编译包,Solaris 9自带的zlib版本通常无法满足编译要求。
关于自带工具链的说明
- Solaris 9自带的make是Sun make,Git官方Makefile仅适配GNU make,完全不兼容Sun make,所以不能使用自带的make编译,你已经安装的GNU make 3.82版本满足要求。
- Solaris 9自带的Sun Studio cc编译器理论上可以编译Git,但需要手动修改大量编译参数适配Sun C的语法,远不如直接使用你已经安装的gcc 3.4.6方便,不推荐切换。
内容的提问来源于stack exchange,提问作者dlsa
相关产品推荐
相关产品推荐

