Задать вопрос
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER

Почему возникает illegal instruction?

Это кусок пересборки пакета unzip, а вовсе не какой-то моей программы.

Оптимизация компилера включена:
# x86_64-pc-linux-gnu-gcc -c -O1 -march=native -pipe -std=gnu89  -DNO_LCHMOD -DUSE_BZIP2 -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DUSE_ICONV_MAPPING -DLARGE_FILE_SUPPORT -Wall -I. -Ibzip2 -DUNIX  -DNO_SETLOCALE  crypt.c
during GIMPLE pass: profile_estimate
crypt.c: In function ‘testkey’:
crypt.c:654:1: internal compiler error: Illegal instruction


Оптимизация компилера выключена:
# x86_64-pc-linux-gnu-gcc -c -O0 -march=native -pipe -std=gnu89  -DNO_LCHMOD -DUSE_BZIP2 -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DUSE_ICONV_MAPPING -DLARGE_FILE_SUPPORT -Wall -I. -Ibzip2 -DUNIX  -DNO_SETLOCALE  crypt.c


Немножко предыстории вопроса.

Система установлена на VDS и собрана с оптимизацией под хостовый процессор Xeon Silver. Потом перенесена через dump/restore на другой хост, где Xeon попроще. Часть системы переустановлена из пакетов (потому что запуск чего угодно дает Illegal instruction).

Вопрос собственно в том - что такого вызывает gcc при оптимизации, чего я не пересобрал? world пересобрирал, часть заработала, но не все, как видно.
  • Вопрос задан
  • 1474 просмотра
Подписаться 3 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы