Ошибка 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

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

Другие вопросы по тегам