• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
5859