Назад | Перейти на главную страницу

Ошибка Solaris cc при компиляции rsync на платформе Intel

Я пытаюсь скомпилировать rsync-3.0.7 на Solaris 5.10 на чипсете Intel.

При беге ./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

Ошибка сегментации? Что могло привести к сбою простого тестового сценария во время компиляции?

Это не исправит ваши проблемы с компиляцией, но вы всегда можете использовать репозиторий opencsw http://opencsw.org/ у них уже скомпилирована эта версия rsync и есть полезное приложение под названием pkg-get для выполнения установки

Я столкнулся с той же проблемой, но не смог использовать -xc99=all,no_lib обходной путь (программа, которую я создавал, требовала всех функций c99), и попытался вручную запустить команду cc под truss. Он показал, что segfault произошел сразу после попытки открыть /lib/values-xpg6.o. Этого файла не было, но он доступен в SUNWarc пакет. Я установил это, и segfault исчез.

Я не совсем уверен, в чем заключалась основная причина, но это должно помочь всем, у кого вышеуказанный обходной путь не работает.

Опция -xc99=all вызывал segfault. Описание опции можно найти Вот в котором указано, что по умолчанию -xc99=all,no_lib (что не приводит к сбою компилятора).

Чтобы сделать configure сценарий работы, которую я редактировал configure.sh это и заменил экземпляр -xc99=all к -xc99=all,no_lib

Ответил на мой собственный вопрос, чтобы у других, которые сталкиваются с этой проблемой, мог быть вектор, чтобы попытаться найти обходной путь.