А вот и решение:
Объявляем и реализуем в X символ вида x_version_marker_symbol_XXXXXXXXX (где XXXXX — ревизий, выставляет автоматически билд скриптом), и принудительно его использовать в A и B. Если версии не совпадут — то линкер будет искать x_version_marker_symbol_YYYYYYYYY и ругнется на undefined symbol.