Обновление до Ubuntu приводит к сбою gcc -fsanitize - PullRequest
0 голосов
/ 22 ноября 2018

Я запускал Ubuntu под VirtualBox и использовал automake для сборки системой (netcdf-c) с использованием gcc 7.3.0

Я использовал -fsanitize = address как часть CFLAGS, чтобы я мог выполнять проверки утечки памяти.

Недавно я сделал предлагаемое обновление до Ubuntu 18.04.Теперь ./configure терпит неудачу при проверке кросс-компиляции с ошибкой:

== 9629 == ASan время выполнения не идет первым в начальном списке библиотек;вы должны либо связать среду выполнения с вашим приложением, либо вручную предварительно загрузить его с помощью LD_PRELOAD.

Поэтому я попробовал следующее:

  1. создал простой файл conftest.c

    int main () {return 0;}

  2. скомпилировано с использованием gcc -o conftest -fsanitize = address conftest.c
  3. Я запустил ./conftest - это приводитв приведенном выше сообщении об ошибке.

Итак, я попытался:

  1. добавить -lasan к команде gcc - тот же сбой
  2. set LD_PRELOAD = /usr / lib / gcc / x86_64-linux-gnu / 7 / libasan.so после компиляции, но перед выполнением ./conftest - сработало.

Однако, если я установлю LD_PRELOAD перед выполнением ./configure, затем ./configure терпит неудачу с различными жалобами: неудивительно.

Я не думаю, что имею достаточный контроль над automake, чтобы решить эту проблему с помощью LD_PRELOAD.

Два вопроса:

  1. Почему при обновлении внезапно gcc неправильно загрузил libasan?

  2. здесь исправление?

доп.Примечания:

  1. Я удалил и переустановил gcc - без эффекта
  2. Я удалил старую версию libasan - без эффекта
...