【发布时间】:2018-05-30 00:13:20
【问题描述】:
我想从 autoconf 2.62 更新到 2.69。
我下载了源代码并运行了以下内容:
./configure
make
make install
这些都成功完成了。
当我运行 autoconf --version 时,我得到以下信息:
autoconf --version
autoconf (GNU Autoconf) ?K??
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David J. MacKenzie and Akim Demaille.
您在此处看到的问题是版本报告为 ?K??。
为什么会这样?我的机器在 EBCDIC 代码页中运行,我想知道这是否可以关联。有没有我需要添加的配置/制作选项。
这个问题使我无法编译其他软件,因为配置脚本会检查版本 autoconf 报告并最终未能通过这些检查。
-----更新-----
我已按要求运行make check,这是输出:
autoconf269: >make check
make check-recursive
Making check in bin
Making check in .
Making check in lib
Making check in Autom4te
Making check in m4sugar
make check-local
Making check in autoconf
make check-local
Making check in autotest
make check-local
Making check in autoscan
Making check in emacs
Making check in doc
make: Makefile: line 436: Warning -- FSUM9433 Duplicate entry [fdl.texi] in prerequisite list
Making check in tests
make check-local
cd ../lib/autotest && make autotest.m4f
`autotest.m4f' is up to date
autom4te_perllibdir='..'/lib AUTOM4TE_CFG='../lib/autom4te.cfg' ../bin/autom4te -B '..'/lib -B '..'/lib --language=autotest -I . -I . suite.at -o ./testsuite.tmp
m4:local.at:18: bad expression in eval (bad input): ((?+1+0) > (2+0)) - ((?+1+0) < (2+0))
autom4te: /workarea/tools/m4/bin/m4 failed with exit status: 1
FSUM8226 make: Error code 1
FSUM8226 make: Error code 255
FSUM8226 make: Error code 1
FSUM8226 make: Error code 255
我的目光被吸引到了:m4:local.at:18: bad expression in eval (bad input): ((?+1+0) > (2+0)) - ((?+1+0) < (2+0))——你知道为什么这可能被认为是一个糟糕的表达方式吗?
【问题讨论】:
-
您是否尝试使用发行版包管理器进行更新?更新你的构建链不太可能像这样零散地工作。
-
这个平台没有包管理器!
-
试试
autoconf --version | grep \062\056\066\071 | tr '\062\056\066\071' '2.69'(八进制转义符是2.69in ASCII)。如果它打印正确的版本行,您可能有 EBCDIC 问题。您也可以在顶层 autoconf-2.69 源目录中尝试grep AC_INIT configure.ac,以确定它是否打印2.69。我不知道您在使用专门处理 ASCII 的 autoconf 之后可能会遇到什么问题,但这至少为您提供了一些有价值的信息。 -
如果您正在使用 z/OS 或某些此类平台,其中 EBCDIC 代码页是本机执行字符集,您应该尝试查找一些补丁。 Python 开发人员在某一时刻拒绝了上游 EBCDIC 补丁 (Issue 1298),因此如果 autoconf 也与 EBCDIC 不兼容,我不会感到惊讶,如果您没有发现任何补丁,我也不会感到惊讶。同样,EBCDIC 问题(如果有的话)可能完全不相关,但它可能对我们所知道的有所帮助。
make check似乎对数字没有问题,但其错误输出中的?可能有问题。
标签: makefile autoconf automake autoreconf