vak: (Default)
[personal profile] vak
Набрёл на забавную багу на платке 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 небось. Посоветовали попробовать собрать с исходников.

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

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

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

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

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

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

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

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

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

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

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