Ошибка 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
Ошибка сегментации? Что может быть причиной того, что во время компиляции простой тестовый скрипт перестал работать?
3 ответа
Это не исправит ваши проблемы с компиляцией, но вы всегда можете посмотреть на использование репозитория opencsw http://opencsw.org/ они уже скомпилировали эту версию rsync и имеют полезное приложение pkg-get для выполнения установок.
Я столкнулся с той же проблемой, но не мог использовать -xc99=all,no_lib
Обходной путь (программе, которую я создавал, требовались все функции c99), и попытался вручную запустить команду cc в ферменном режиме. Он показал, что произошла ошибка после попытки открыть /lib/values-xpg6.o
, Этот файл отсутствовал, но доступен в SUNWarc
пакет. Я установил это, и segfault ушел.
Я не совсем уверен, какова была основная причина, но это должно помочь любому, для кого вышеупомянутый обходной путь терпит неудачу.
Опция -xc99=all
был причиной segfault. Описание опции можно найти здесь, где указано, что по умолчанию -xc99=all,no_lib
(который не вызывает компилятор segfault).
Чтобы сделать configure
Сценарий работы я редактировал configure.sh
это и заменило экземпляр -xc99=all
в -xc99=all,no_lib
Ответил на мой собственный вопрос, чтобы у других, кто столкнулся с этой проблемой, мог быть вектор, чтобы попытаться создать обходной путь.