Существует проект с предварительно созданными зависимостями (набор статических библиотек), все эти библиотеки имеют разделы отладочной информации, сгенерированные в формате набора инструментов по умолчанию - DWARF-4. Я пытаюсь скомпилировать мои исходники с помощью -gdwarf-5
, но компоновщик не может связать окончательный загружаемый двоичный файл:
ld.lld: error: linking module flags 'Dwarf Version': IDs have conflicting values ('i32 4' from foo/bar/baz.cc with 'i32 5' from ld-temp.o)
Есть ли способ убедить компоновщик продолжить работу, даже если разные TU используют разные версии DWARF? После некоторого поиска в Google я нашел этот билет https://reviews.llvm.org/D52952,, где та же самая проблема была объявлена как предупреждение, что заставляет меня думать, что могут быть некоторые шансы ее подавить.
PS Все вышеизложенное касается LLVMнабор инструментов из Android NDK r20 (претендует на LLVM 8), компоновщик lld.
PSS У меня нет шансов перекомпилировать зависимости, поэтому я ищу способ разрешить разные версии DWARF в окончательном бинарном файле.