当前位置:网站首页>openEuler 知:abi 检测
openEuler 知:abi 检测
2022-08-09 23:33:00 【canpool】
文章目录
abichecker
仓库:https://gitee.com/openeuler/abichecker
依赖:abi-dumper、abi-compliance-checker
- abi-dumper 上游社区:https://github.com/lvc/abi-dumper
- abi-compliance-checker 上游社区:https://github.com/lvc/abi-compliance-checker
用法:
python3 abichecker.py PKGNAME DIR
- PGKNAME:软件包名字,rpm包文件名的前缀需要同 PKGNAME 一样
- DIR:绝对路径,以’/'结尾,如:~/checkdir/,该目录下存在与 PKGNAME 同名的目录,PKGNAME 目录下存放该软件包的两个版本 rpm 包文件,其中需要包含必要的包含动态库的 rpm 包(main、libs、devel等)和 debuginfo rpm 包。
举例:
下面以 musl 包为例,检测 1.2.2 和 1.2.3 两个版本之间的差异:
1)准备两个版本的 rpm 包
通过osc getbinaries --debug ...获取 obs 服务器上的两个版本的 rpm 包
$ osc getbinaries --debug openEuler:22.03:LTS musl standard_x86_64 x86_64
$ osc getbinaries --debug home:maminjie:branches:openEuler:22.03:LTS musl-1.2.2 standard_x86_64 x86_64
$ ls -1 binaries/
_buildenv
musl-debuginfo-1.2.2-2.oe2203.x86_64.rpm
musl-debuginfo-1.2.3-1.oe2203.x86_64.rpm
musl-debugsource-1.2.2-2.oe2203.x86_64.rpm
musl-debugsource-1.2.3-1.oe2203.x86_64.rpm
musl-devel-1.2.2-2.oe2203.x86_64.rpm
musl-devel-1.2.3-1.oe2203.x86_64.rpm
musl-gcc-1.2.2-2.oe2203.x86_64.rpm
musl-gcc-1.2.3-1.oe2203.x86_64.rpm
musl-libc-1.2.2-2.oe2203.x86_64.rpm
musl-libc-1.2.3-1.oe2203.x86_64.rpm
musl-libc-static-1.2.2-2.oe2203.x86_64.rpm
musl-libc-static-1.2.3-1.oe2203.x86_64.rpm
_statistics
2)重命名
将 binaries 目录重命名为 musl
$ cp -r binaries musl
3)执行 abichecker
$ python3 ~/work/my/abichecker/abichecker.py musl ~/work/tmp/
...
Creating ABI dump
The object ABI has been dumped to:
ABI-ld-musl.so.dump
Preparing, please wait ...
Comparing ABIs ...
Comparing APIs ...
Creating compatibility report ...
Binary compatibility: 99.96%
Source compatibility: 99.9%
Total binary compatibility problems: 3, warnings: 1
Total source compatibility problems: 6, warnings: 1
Report: compat_reports/ld-musl.so/X_to_Y/compat_report.html
Preparing, please wait ...
Comparing ABIs ...
Comparing APIs ...
Creating compatibility report ...
Binary compatibility: 99.96%
Source compatibility: 99.9%
Total binary compatibility problems: 3, warnings: 1
Total source compatibility problems: 6, warnings: 1
Report: compat_reports/ld-musl.so/X_to_Y/compat_report.html

更多关于 abi-dumper、abi-compliance-checker 的使用可以参考 ABI 。
边栏推荐
猜你喜欢

JVM Memory and Garbage Collection - 10. Direct Memory

【集训DAY3】石油储备计划【树形DP】

dlopen failed: library “libtaml.so“ not found

【集训DAY3】中位数

Service Discovery @EnableDiscoveryClient
![[C language] Address book](/img/56/a72900c22b965947ee88256d8f6c21.jpg)
[C language] Address book "Static Memory Version"
![MATLB|And her ups and downs and finally reached the peak of life [Romantic Journey]](/img/10/55cc34a929768d89d9ffde8a5b3419.png)
MATLB|And her ups and downs and finally reached the peak of life [Romantic Journey]

ES6 Beginner to Mastery #13: Extension Methods for Arrays 2

服装店管理系统如何推送活动?

ES6 从入门到精通 # 15:生成器 Generator 的用法
随机推荐
ECCV 2022 | Microsoft Open Source TinyViT: Pre-training Capabilities for Small Models
Redis 非关系型数据库学习(一) ---- Redis 的安装
Eureka自我保护
Dry goods!Towards robust test-time adaptation
dlopen failed: library "libtaml.so" not found
数字孪生智慧制造生产线项目实施方案,平台认知与概念
YOLOV5 study notes (7) - training your own data set
ES6 从入门到精通 # 14:迭代器 Iterator 的用法
Golden Warehouse Database KingbaseGIS User Manual (6.5. Geometry Object Editing Function)
vmware Exsi 网卡配置
AirFlow介绍
分布式数据库难题(三):数据一致性
服装店管理系统如何推送活动?
Wireshark经典实践和面试13点总结
构建平衡二叉树「建议收藏」
【「收藏」Oracle 数据库安装】
Golden Warehouse Database KingbaseGIS User Manual (6.4. Geometry Object Access Function)
【集训DAY5】堆箱子【数学】
数据库的备份与恢复「建议收藏」
深入理解Aarch64内存管理