abi-conformité vérificateur est un programme Perl qui peut vérifier ABI des bibliothèques sur linux (https://lvc.github.io/abi-compliance-checker/)À quoi sert l'option étendue dans abi-compliance-checker?
L'outil a une option -extended
, et voici ce que le manuel dit à ce sujet:
Si votre bibliothèque A est censée être utilisée par l'autre bibliothèque B et vous voulez contrôler l'ABI de B, alors vous devriez activer cette option. L'outil vérifie les changements dans tous les types de données, même s'ils ne sont utilisés par aucune fonction de la bibliothèque A. Ces types de données ne font pas partie de l'ABI de bibliothèque A, mais peuvent faire partie de l'ABI de la bibliothèque B. Le régime est court: app C (cassé) -> lib B (cassé ABI) -> lib A (stable ABI)
Même après avoir essayé de vérifier ABI avec et sans l'option, je ne toujours pas vraiment comprendre l'option de signification et comment cela change les résultats que je reçois.
Voici un extrait des résultats que j'ai sans l'option:
Test Results
Total Header Files 177
Total Libraries 1
Total Symbols/Types 96/57
Compatibility 100%
Added Symbols 1
demangle.h, libtoolbox.so.16.0.0.27
namespace mdw
demangle (std::__cxx11::string const& iMangledString)
Problems with Symbols, Low Severity 1
BufferMgr.h
namespace toolbox
[+] kDefaultMaxBufferSize [data] 1
Et voici les résultats avec l'option activée:
Test Results
Total Header Files 177
Total Symbols/Types 158/375
Compatibility 99.8%
Added Symbols 2
demangle.h
namespace mdw
demangle (std::__cxx11::string const& iMangledString)
StaticInit.h
namespace toolbox
_SymbolDefinedInStaticInitOnly_StaticInit ()
Removed Symbols 1
StaticInit.h
namespace toolbox
_SymbolDefinedInStaticInitOnly ()
Problems with Symbols, Low Severity 1
BufferMgr.h
namespace toolbox
[+] kDefaultMaxBufferSize [data] 1
Quelqu'un est-il en mesure d'expliquer ce que cela signifie d'option , et ce que les différences dans la production signifie d'un point de vue ABI?