Bug 38250 - clang не находит библиотеки asan на i586
Summary: clang не находит библиотеки asan на i586
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: clang9.0 (show other bugs)
Version: unstable
Hardware: x86 Linux
: P5 normal
Assignee: Valery Inozemtsev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-20 13:11 MSK by Aleksei Nikiforov
Modified: 2020-03-23 11:31 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksei Nikiforov 2020-03-20 13:11:09 MSK
При попытке сборки кода с использованием clang и asan на архитектуре i586 clang завершает работу с ошибкой про отсутствие библиотек.

Для воспроизведения достаточно создать hasher с архитектурой i586, поставить туда текстовый редактор, а также пакеты clang, llvm, llvm-devel.

$ cat example.c
#include <stdio.h>

int main(int argc, char **argv)
{
        printf("Hello world\n");
        return 0;
}

$ clang -fsanitize=address example.c -o example
/usr/bin/ld.default: cannot find /usr/lib/clang/9.0.1/lib/linux/libclang_rt.asan-i386.a: No such file or directory
clang-9: error: linker command failed with exit code 1 (use -v to see invocation)

$ ls /usr/lib/clang/9.0.1/lib/linux/libclang_rt.asan-*.a
/usr/lib/clang/9.0.1/lib/linux/libclang_rt.asan-i586.a  /usr/lib/clang/9.0.1/lib/linux/libclang_rt.asan-preinit-i586.a

Ожидаемый результат: успешная сборка приложения из примера.

На x86_64 не воспроизводится. Насколько я вижу, проблеме подвержены все версии clang во всех актуальных репозиториях на архитектуре i586.
Comment 1 Valery Inozemtsev 2020-03-20 13:58:01 MSK
$ clang --target=i586 example.c -o example
Comment 2 Aleksei Nikiforov 2020-03-20 14:27:06 MSK
(Ответ для Valery Inozemtsev на комментарий #1)
> $ clang --target=i586 example.c -o example

Был пропущен важный аргумент: -fsanitize=address

$ clang --target=i586 -fsanitize=address example.c -o example
clang-9: error: unsupported option '-fsanitize=address' for target 'i586'

$ clang --version
clang version 9.0.1 
Target: i686-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

Без -fsanitize=address конечно всё хорошо.
Comment 3 Repository Robot 2020-03-20 20:57:08 MSK
llvm9.0-9.0.1-alt3 -> sisyphus:

 Fri Mar 20 2020 Valery Inozemtsev <shrek@altlinux.ru> 9.0.1-alt3
 - use 'Release' build
 - clang: fixed link with option -fsanitize=address (closes: #38250)
Comment 4 Aleksei Nikiforov 2020-03-23 11:25:17 MSK
Спасибо, подтверждаю исправление.