1# libabigail 2 3仓库包含第三方开源软件libabigail,libabigail是一个用于不同版本二进制库的ABI检查工具。开发者使用这个工具可以生成二进制库的ABI特征文件,并且可以比较两个版本之间的特征文件,从而可以看出同一个二进制库在两个版本之间是否发生了ABI变化。 4 5## 目录结构 6 7``` 8doc/ 文档 9include/ 头文件 10scripts/ 脚本 11src/ 源文件 12tests/ 测试目录 13tools/ 工具源码 14LICENSE.txt 证书文件 15README README说明 16``` 17 18## OpenHarmony如何使用libabigail 19 20SA独立升级的特性需要对相关的二进制库进行ABI检查,以保证二进制库的前向兼容。通过libabigail提供的工具对比基线的ABI特征文件与编译时实时生成的ABI特征文件,可以看出ABI是否发生了变化,如果是则编译报错。 21 22## OpenHarmony如何集成libabigail 23 24libabigail是作为host端的工具存在,不会随镜像发布到产品中。 25 26### 1.libabigail编译入口 27 28libabigail的编译入口在其根目录下的BUILD.gn中。 29 30```makefile 31group("libabigail-tools_host_toolchain") { 32 deps = [ 33 "//third_party/libabigail/tools:abidiff($host_toolchain)", 34 "//third_party/libabigail/tools:abidw($host_toolchain)", 35 ] 36} 37``` 38 39可以看出使用了libabigail中的abidiff和abidw这两个工具。 40 41### 2.使用libabigail 42 43SA独立升级特性提供了新的编译模板`ohos_module_package`,其中直接指定了对libabigail的依赖。 44 45```makefile 46deps += [ "//third_party/libabigail:libabigail-tools_host_toolchain" ] 47``` 48这样只要有模块使用了`ohos_module_package`模板,libabigail工具就会编译出来。 49 50## libabigail相关内容 51 52[libabigail官网](https://sourceware.org/libabigail/) 53 54## License 55 56`Apache License V2.0` 57 58 59