ABI-合规性检查是一个Perl程序,可以运行在Linux检查库的ABI(https://lvc.github.io/abi-compliance-checker/)abi-compliance-checker中的扩展选项用于什么?
该工具有一个-extended
选项,这里是什么手册说一下吧:
如果你的库A应该被其他库B使用,并且你想控制B的ABI,那么你应该启用这个选项。该工具将检查所有数据类型的变化,即使它们未被库A中的任何函数使用。此类数据类型不是A库ABI的一部分,但可能是B库的ABI的一部分。 短期方案是: 应用C(断) - > LIB B(破ABI) - > LIB A(稳定ABI)
即使试图与不检查选项ABI后,我还是不真正理解意义选项以及它如何改变我得到的结果。
这是效果的片段我都没有选择:
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
在这里,与该选项的结果激活:
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
有没有人能解释一下这个选项意味着,以及ABI观点中输出的差异是什么?