LINUX.ORG.RU

FreeBSD 11.1 СБорка Qt4.8.6 из исходников. Segmentation fault

 , ,


1

1

Привет!
FreeBSD 11.1 Пытаюсь собрать qt-4.8.6 из исходников и столкнулся с ошибкой сегментирования:

g++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
gmake[1]: *** [Makefile:7076: .obj/release-shared/qabstractanimation.o] Ошибка 4
gmake[1]: выход из каталога «/mnt/files/devel/qt-everywhere-opensource-src-4.8.6/src/corelib»
gmake: *** [Makefile:206: sub-corelib-make_default-ordered] Ошибка 2
GCC-6.4.0 собирал из портов. В прошлых версиях фряхи так и не собрал qt из исходников вообще ни одну версию.
Подскажите плиз.
Конфигурировал так:
./configure -platform freebsd-g++ -debug-and-release -no-webkit -nomake demos -nomake examples

★★☆

1. Памяти достаточно?

2. Вынь из мейкфайла рецепт, который сегфолтит g++, засунь его в gdb, посмотри bactrace, может станет ясно в чём причина.

Если нет — вперёд на https://gcc.gnu.org/bugzilla/ только с пометкой, что это FreeBSD.

EXL ★★★★★
()

Не знаю, как gcc обычно работает на фряхе, но на линуксе это с большой вероятностью означало бы аппаратные проблемы, например, убитую память.

Deleted
()
Ответ на: комментарий от EXL

1. Памяти достаточно?

Более чем: 24ГБ.

xwicked ★★☆
() автор топика
Ответ на: комментарий от Deleted

например, убитую память.

В GNU / Linux собирается и собирался раньше, это только с фряхой такая ерунда любое железо(было 2 компа) любая версия Qt.

xwicked ★★☆
() автор топика

последняя версия 4.8.7 если что

Harald ★★★★★
()
Ответ на: комментарий от xwicked

это только с фряхой такая ерунда

Сама судьба говорит, что это говно надо выбросить на помойку

anonymous
()

Кстати, а что мешает использовать штатный clang вместо gcc?

annulen ★★★★★
()
Ответ на: комментарий от annulen

В make.conf нет никаких аццких оптимизаций?

Кстати да, там было -О3 и j5, Сейчас пересоберу, отпишусь.

xwicked ★★☆
() автор топика

g++: internal compiler error: Segmentation fault (program cc1plus)

У меня была точно такая же ошибка при компиляции во фряхе когда я в биосе увеличил частоту памяти. Иногда компиляция вылетала с ошибкой Bus error. После возвращения частоты в дефолтное значение проблема исчезла.

iron ★★★★★
()
Ответ на: комментарий от xwicked

O3 должна быть безопасна, если компилятор, которым производится сборка, не кривой.

annulen ★★★★★
()
Ответ на: комментарий от xwicked

Хотя могут быть проблемы в случае если компилируемый код кривой (содержит UB), в этом случае может помочь переход на gcc 7.3

annulen ★★★★★
()

Естественно речь идет про компиляцию gcc а не Qt

annulen ★★★★★
()

это проблемы с памятью, убрать -j5, что бы компилило в один поток

anonymous
()
Ответ на: комментарий от EXL

И да, у тебя случайно не Ryzen? :^)

i3-3240.

xwicked ★★☆
() автор топика

а clang чем не вариант?

cetjs2 ★★★★★
()
Ответ на: комментарий от xwicked

это только с фряхой такая ерунда любое железо(было 2 компа)

Собираю qt-gui с кастомной опцией. GCC тоже все версии собственной сборки. Брат жив пару лет.

Ничего хитромудрого в /etc/libmap.conf нет? А то

anonymous
()
Ответ на: комментарий от anonymous

Собираю qt-gui с кастомной опцией. GCC тоже все версии собственной сборки. Брат жив пару лет.
Ничего хитромудрого в /etc/libmap.conf нет? А то

Вот я собирал из портов GCC - он долго собирался. А сейчас я удалил его и пробую собрать а он только регистрирует уже собранную версию. Ничего не осталось, как только сделать в /usr/ports:

sudo make clean distclean
Может поможет.

xwicked ★★☆
() автор топика
Последнее исправление: xwicked (всего исправлений: 1)
Ответ на: комментарий от anonymous

что это говно надо выбросить на помойку

Так и сделано — gcc в системе по дефолту нет

anonymous
()
Ответ на: комментарий от xwicked

Есть такое. Увеличена...

Вернул обратно - тоже самое. :(

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Пересобрал GCC-6.4.0 - не помогло. Ставлю GCC-7.

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Мне нужно пока ещё немного посидеть на старой версии.

Тогда

cd /usr/ports/devel/qt4
make install clean

Можешь собрать не всё, а только те порты, которые нужны. И не собирай gcc для этого, clang лучше почти всем

anonymous
()
Ответ на: комментарий от anonymous

И почитай, чтобы не задавать глупых вопросов

Фишка в том, что Qt отдельно от портов не собирается вообще, а это ни статику ни другую версию не соберёшь... обЫдно.

xwicked ★★☆
() автор топика
Ответ на: комментарий от iZEN

Я статику хотел и другие версии, а так то я знал.

xwicked ★★☆
() автор топика

Поймал растыку, помогите!

$ cd /usr/src/
$ sudo rm -rf /usr/bin
Пароль: 
Попробуйте ещё раз.
Пароль: 
rm: /usr/bin/chpass: Operation not permitted
rm: /usr/bin/opiepasswd: Operation not permitted
rm: /usr/bin/login: Operation not permitted
rm: /usr/bin/su: Operation not permitted
rm: /usr/bin/opieinfo: Operation not permitted
rm: /usr/bin/crontab: Operation not permitted
rm: /usr/bin/passwd: Operation not permitted
rm: /usr/bin: Directory not empty
$ sudo rm -rf /usr/obj
хотел пересобрать мир. Система пока работает. :D

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Не понял, что вы делаете. Но вижу, что делаете методом «тыка». Советую прочесть книжку «FreeBSD. Подробное руководство» Майкла Лукаса, чтобы привести мозги в порядок. Год издания этой книги не важен.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Как вернуть содержимое папки /usr/bin? вытащить из установочного образа и положить обратно, так прокатит?
Я хотел сделать

sudo rm -rf /usr/obj
а сделал
sudo rm -rf /usr/bin

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Тогда грузиться с флэшки и разворачивать каталог из архива или копировать содержимое системного каталога с флэшки, если на флэшке FreeBSD.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)

Не знаю с чем связано, но сейчас при сборке мира, clang, qtcreator возникает ошибка:

fatal error: 
      'emmintrin.h' file not found
Причём что сам файл известно где лежит:
$ find /usr/src -name 'emmintrin.h'
/usr/src/contrib/llvm/tools/clang/lib/Headers/emmintrin.h
/usr/src/contrib/gcc/config/i386/emmintrin.h
Куда его прописать, чтобы portmaster его видел, так как он заново начинает распаковку и пересборку? В каталог с нужной рограммой не положить.

xwicked ★★☆
() автор топика
Последнее исправление: xwicked (всего исправлений: 1)
Ответ на: комментарий от xwicked

но сейчас при сборке мира, clang, qtcreator возникает ошибка

% locate emmintrin
/usr/jails/basejail/usr/include/clang/5.0.0/emmintrin.h
/usr/lib/clang/5.0.0/include/emmintrin.h
/usr/local/lib/gcc/mingw32/4.8.1/include/emmintrin.h
/usr/local/lib/gcc5/gcc/x86_64-portbld-freebsd11.1/5.5.0/include/emmintrin.h
/usr/local/lib/gcc6/gcc/x86_64-portbld-freebsd11.1/6.4.0/include/emmintrin.h
/usr/local/lib/gcc7/gcc/x86_64-portbld-freebsd11.1/7.2.0/include/emmintrin.h
/usr/local/llvm50/lib/clang/5.0.1/include/emmintrin.h

clang системный, gcc из портов. Это:

usr/src/contrib/llvm/tools/clang/lib/Headers/emmintrin.h

Только и исключительно для «внутреннего употребления» (сборка компилятора в базе). В остальных случаях такая ошибка обычно индикатор неправильно установленного компилятора, «странных» опций в /etc/make.conf и прочего.

anonymous
()
Ответ на: комментарий от anonymous

Похоже я нарушил последовательность обновления мира и не обновил конфигурационные файлы. Но, я уже не смогу проверить, так как всё снёс и ставлю заново. Пересобирать мир не буду, посмотрю как Qt4 соберётся из портов.

xwicked ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.