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