Обходное решение для лязга 3.7 недостающих ошибки Asan

Существует известная ошибка, чтобы сделать с тем, что пакеты Debian libclang, кажется, компилируются с автоинструментами, но только сборка cmake библиотеки производит библиотеку для дезинфицирующих средств.

Эффекты ошибки libclang-common-3.7. Это приводит к ошибкам ссылки такой как

/usr/bin/ld.gold: error: cannot open /usr/lib/llvm-3.7/bin/../lib/clang/3.7.0/lib/linux/libclang_rt.asan-x86_64.a: No such file or directory
/usr/bin/ld.gold: error: cannot open /usr/lib/llvm-3.7/bin/../lib/clang/3.7.0/lib/linux/libclang_rt.asan_cxx-x86_64.a: No such file or directory
error: undefined reference to '__asan_option_detect_stack_use_after_return'
error: undefined reference to '__asan_stack_malloc_5'
error: undefined reference to '__asan_report_load4'
error: undefined reference to '__asan_report_load8'
error: undefined reference to '__asan_report_load8'
error: undefined reference to '__asan_handle_no_return'
error: undefined reference to '__asan_report_store_n'
...

Я просто хочу знать, как люди работают вокруг этого.

Мне это - огромное соглашение. Я удивлен, что эта ошибка пошла открепленная в течение многих месяцев и туда, кажется, не много шума об этом.

2
задан 29 November 2015 в 02:18

2 ответа

Мое обходное решение должно использовать Лязг 3,6 пакета. Если Вы действительно требуете 3.7, необходимо создать его из источника.

хорошие новости - то, что это, был распознан как высокоприоритетная ошибка (см. ошибка 22757 ).

1
ответ дан 2 December 2019 в 02:54

Я также удивлен тем, какой длины эта ошибка была вокруг. Я думаю, что это на самом деле фиксируется в этой точке, но там, кажется, не план обновить более старые пакеты. К счастью оказывается, что, фиксируя поврежденные пакеты после того, как установка довольно легка. Просто необходимо загрузить корректные библиотеки и поместить их в корректный каталог.

Первый, перейдите в http://llvm.org/releases/download.html и найдите версию соответствия. Я запускаю 64-разрядную Ubuntu 14.04, так для исправления лязга 3.8 я хочу "Лязг для x86_64 Ubuntu 14.04". Загрузите непосредственно или скопируйте щелчок правой кнопкой, и "Копируют Адрес канала" и используют wget:

wget http://llvm.org/releases/3.8.0/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz

Распакуйте:

tar -xf clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz

Затем копируют файлы библиотеки (использующий-n, чтобы не перезаписывать существующие файлы):

sudo cp -n clang+llvm-3.8.0-x86_64-linux-gnu/lib/clang/3.8.0/lib/linux/*.a /usr/lib/llvm-3.8/lib/clang/3.8.0/lib/linux/

При желании повторитесь для любых более старых версий лязга, который Вы установили, хотя примечание, что при использовании ядра Linux, более свежего, чем 4,1 с версией лязга ранее, чем 3,8, можно встретиться с другой ошибкой с-fsanitize=memory: https://llvm.org/bugs/show_bug.cgi? id=24155

2
ответ дан 2 December 2019 в 02:54

Другие вопросы по тегам:

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