Компиляция autoconf приводит к неверному отчету о версии

Я хочу обновиться с 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, и мне интересно, может ли это быть связано. Есть ли опция configure/make, которую мне нужно добавить.

Эта проблема мешает мне компилировать другое программное обеспечение, так как сценарии настройки проверяют отчеты версии 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)) -- есть идеи, почему это можно считать плохим выражением?


person RenegadeAndy    schedule 30.05.2018    source источник
comment
Вы пытались обновить с помощью диспетчера пакетов дистрибутива? Обновление вашей цепочки сборки вряд ли будет работать по частям, как это.   -  person l0b0    schedule 30.05.2018
comment
На этой платформе нет менеджера пакетов!   -  person RenegadeAndy    schedule 30.05.2018
comment
Попробуйте autoconf --version | grep \062\056\066\071 | tr '\062\056\066\071' '2.69' (восьмеричные escape-последовательности 2.69 в ASCII). Если он печатает правильную строку версии, у вас могут быть проблемы с EBCDIC. Вы также можете попробовать grep AC_INIT configure.ac в исходном каталоге autoconf-2.69 верхнего уровня, чтобы определить, печатает ли он 2.69 или нет. Я не знаю, с какими проблемами вы можете столкнуться в будущем с autoconf, который работает исключительно с ASCII, но это дает вам по крайней мере некоторую ценную информацию.   -  person    schedule 25.06.2018
comment
Если вы работаете с z/OS или какой-либо подобной платформой, где кодовая страница EBCDIC является собственным набором символов выполнения, вам следует попытаться найти некоторые исправления. Разработчики Python отклонили исправления EBCDIC восходящего потока в какой-то момент (ошибка 1298), так что я не удивлюсь, если autoconf также несовместим с EBCDIC, и я не удивлюсь, если вы не найдете исправлений. Опять же, проблема EBCDIC, если она есть, может быть совершенно не связана, но, насколько нам известно, может помочь. У make check, похоже, нет проблем с числами, но ? в выводе ошибки может быть проблемой.   -  person    schedule 25.06.2018


Ответы (1)


Один из вариантов: скомпилированный вами autoconf установлен в /usr/local, а предустановленный — в /usr. /usr стоит первым в PATH, поэтому используется предустановленный.

Вы также можете проверить версию перед запуском make install, чтобы убедиться, что новая версия решает вашу проблему.

person arved    schedule 30.05.2018
comment
К сожалению, после make, если я войду в каталог bin и запущу ./autoconf -V, я также получу отчет о версии ?K??. В пути есть только 1 каталог с моим новым автоконфигом. - person RenegadeAndy; 30.05.2018
comment
autoconf — это шеллскрипт, поэтому вы можете открыть его в текстовом редакторе и вручную исправить номер версии. Но остается вопрос, что пошло не так во время сборки - person arved; 30.05.2018
comment
Похоже, номер версии генерируется с помощью магии m4. Вы можете попробовать запустить make check из вашего дистрибутива autoconf? - person arved; 30.05.2018
comment
Я отредактировал вопрос, включив в него этот новый вывод контента из make check - спасибо @arved. - person RenegadeAndy; 30.05.2018