vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2021-06-17 04:36 pm

Clang смешно крэшится

Набрёл на забавную багу на платке RISC-V. Установил clang из пакетов стандартным образом: "sudo apt install clang", все дела. Вызываю clang без параметров, и внезапно:
$ clang
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang
1. Compilation construction
/usr/lib/riscv64-linux-gnu/libLLVM-11.so.1(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x28)[0x3ff17dec08]
Illegal instruction
Проверил несколько других компиляторов: gcc, rustc, golang. Всё пашет как положено, один clang валится как прокажённый. Написал в bugs.llvm.org - говорят, обращайтесь к своим Debian саппортерам, наворотили чего для RISC-V небось. Посоветовали попробовать собрать с исходников.

Ладно, мне нетрудно, запустил сборку. Процесс компиляции неспешный выходит, боюсь, сутки займёт.
archaicos: Шарж (Default)

[personal profile] archaicos 2021-06-17 11:56 pm (UTC)(link)
Там cmake как-то очень медленно делал свою работу и вроде даже совсем и не думал параллелиться, от чего шланг компилировался часы на мощном компе.
archaicos: Шарж (Default)

[personal profile] archaicos 2021-06-18 12:31 am (UTC)(link)
О да, gcc съест всю память, даже ту, которой нет. Помнится компиляция TF на трёх гигах оперативки с повторяющимся (до успеха) удвоением размера свопа. :)
x86128: (Default)

[personal profile] x86128 2021-06-18 02:21 am (UTC)(link)
А есть qemu с виртуальным risc-v чтобы быстрее собирать?
archaicos: Шарж (Default)

[personal profile] archaicos 2021-06-18 03:13 am (UTC)(link)
О! А нет ли у этого железа списка багов с этим багом? А, похоже заюзали инструкции, которые не везде есть.
Edited 2021-06-18 03:15 (UTC)

[personal profile] ivanrubilo 2021-06-18 08:07 am (UTC)(link)
Зачем так изворачиваться если можно кросс-компилировать на жирном AMD Ryzen?
pappadeux: (Default)

[personal profile] pappadeux 2021-06-20 12:02 am (UTC)(link)
> вроде даже совсем и не думал параллелиться

так это не его проблема

кто там снизу был?
pappadeux: (Default)

[personal profile] pappadeux 2021-06-20 02:50 am (UTC)(link)
cmake не является билдером, он - автоконфигуратор

скажем, конфигурировать для make мб проблемой

а сконфигурировать для ниндзи - и все полетит
archaicos: Шарж (Default)

[personal profile] archaicos 2021-06-20 04:47 am (UTC)(link)
Я понимаю, но были какие-то странные тормоза, и я тогда не стал ковырять.
spamsink: (Default)

[personal profile] spamsink 2021-06-18 01:38 am (UTC)(link)
gdb не предусмотрен, чтобы посмотреть, что там происходит?

[personal profile] ivanrubilo 2021-06-18 07:28 am (UTC)(link)
А попробуйте ради спортивного интереса хекс-едитором этот тотал стор ордеринг барьер на обычный фенс заменить, заработает, небось.

[personal profile] ivanrubilo 2021-06-18 07:34 am (UTC)(link)
А то и вообще на nop.

[personal profile] ivanrubilo 2021-06-18 08:27 am (UTC)(link)
Так автоматизировать же.

[personal profile] ivanrubilo 2021-06-18 08:33 am (UTC)(link)
Так кросс-собрать кланг на маке или писи под таргет risc-v который билдит бинари для risc-v, зачем в qemu-то билдить.
llvm с большим скрипом и на не особо слабом писи-то собирается, памяти желательно не меньше 16 гигов.
Edited 2021-06-18 08:35 (UTC)

[personal profile] dijifi 2021-06-18 05:25 pm (UTC)(link)
Вспомнилось: QEMU бывает быстрее железа!
Были проекты когда первое железо приходило с отмороженным кэшем и только одним ядром и в результате работало медленнее.

[personal profile] ivanrubilo 2021-06-18 09:20 pm (UTC)(link)
Да, это весьма кисло, что уже что-то современное и не сбилдить на кривой козе.

[personal profile] dijifi 2021-06-19 02:33 pm (UTC)(link)
компилятор или линкер свалился? Можно попробовать отключать оптимизацию.

[personal profile] ivanrubilo 2021-06-18 09:16 pm (UTC)(link)
Вполне вероятно если эмулируемый таргет не шибко скорострельный, а хост гигагерцы.

[personal profile] dijifi 2021-06-19 02:19 pm (UTC)(link)
Железяка 1ГГц, симулятор 3.2 ГГц.

Но поскольку кэш выключен, скорость падает на порядок до скорости интерфейса памяти.
Edited 2021-06-19 14:37 (UTC)