Создание библиотеки glib с ASAN - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю над созданием библиотеки glib с ASAN, версия g cc - 6.3.

Я могу скомпилировать и собрать библиотеку glib с ASAN. Моя команда настройки: -

../configure  CC='/local/test/v6.3.0/bin/gcc' CXX='/local/test/v6.3.0/bin/g++' CFLAGS='-fPIC -O2 -fsanitize=address' CXXFLAGS='-fPIC -fsanitize=address' LDFLAGS='-L/local/test/v6.3.0/lib64 -lasan' LD_LIBRARY_PATH='/local/test/v6.3.0/lib64'  --enable-static=yes --prefix=/home/testing/debug_glib/glib-2.56.1/testing_glb --enable-libmount=no PYTHON=/local/test/pkgs/python/v2.7.6/bin/python --with-pcre=/home/testing/pcre_lib/pcre-8.20/pcre_library

Здесь, когда я пытаюсь использовать вновь созданную библиотеку glib, я получаю неопределенную ссылку на проблему с символом:

$ /local/test/client_new/test_build/kkl/tools/kenzip -c dcltotb.tcl
/home/testing/lib/libglib-2.0.so: undefined symbol: __asan_option_detect_stack_use_after_return

Я подключаю библиотеку ASAN ( -lasan), который имеет вышеуказанный символ. Здесь чего-нибудь не хватает? Пожалуйста помоги! Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Сначала вам нужно исправить LDFLAGS на

LDFLAGS=-fsanitize=address

Затем вам нужно предварительно загрузить libasan при запуске вашего неанализованного исполняемого файла с

LD_PRELOAD=path/to/libasan.so /local/test/client_new/test_build/kkl/tools/kenzip -c dcltotb.tcl
0 голосов
/ 11 февраля 2020

Сборка последней версии GLib (2.62.4). Он построен с использованием Meson, а не автоинструментов, и вы можете включить ASAN, передав -Db_sanitize=address в meson при настройке сборки.

...