Это кусок пересборки пакета 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 пересобрирал, часть заработала, но не все, как видно.