Как автоматически проверить двоичную совместимость?
Вопрос
Можно ли это сделать перед компиляцией, сравнив код?Есть ли какие-либо инструменты, которые уже делают это?
Решение
Возможно, вам это покажется интересным: Инструмент статического анализа для обнаружения разрывов ABI в C ++
Другие советы
Проверка соответствия ABI — инструмент для проверки обратной совместимости API / ABI библиотеки C / C ++:
abi-compliance-checker -lib NAME -old OLD.abidump -new NEW.abidump
*.файлы abidump - это дампы ABI СТАРОЙ и НОВОЙ версий библиотеки, созданные Самосвал ABI инструмент.
проверить - Средство проверки ABI/ API интерфейса C:
icheck --canonify -o old_version -I/usr/include/foo/ bar.h
icheck --compare -o results.txt old_version new_version
shlib-сопоставлять - Средство проверки совместимости ABI, использующее информацию об отладке DWARF:
python shlib-compat -vv OLD.so NEW.so
Я помню, что у Purify была некоторая функциональность для проверки совместимости между сборками, взгляните сюда.
Не связан с StackOverflow