当前位置:网站首页>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 。
边栏推荐
- 基于 LSTM 的分布式能源发电预测(Matlab代码实现)
- 【obs】obsqsv11 硬编 及与metartc codec对比
- hql语言
- The technical aspects of the byte have been passed, and the salary has been negotiated for 20K*13, but the result is still being brushed. I asked the HR why...
- vmware Exsi 网卡配置
- YOLOV5学习笔记(七)——训练自己数据集
- Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
- 漫谈缺陷管理的自动化实践方案
- 分布式数据库难题(二):数据复制
- 【Infiltration tool】Browser data export tool
猜你喜欢

LSTM-based distributed energy generation prediction (Matlab code implementation)

【C语言】指针和数组的深入理解(第四期)
![[C language] In-depth understanding of pointers and arrays (issue 4)](/img/22/ad31b47bb8cc1722121959efddefd5.png)
[C language] In-depth understanding of pointers and arrays (issue 4)

分布式数据库难题(三):数据一致性

dlopen failed: library “libtaml.so“ not found

WPF DataGrid using data templates

防火墙之系统防护

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

ES6 从入门到精通 # 12:数组的扩展方法一

ES6 Beginner to Mastery #15: Generator Usage
随机推荐
dlopen failed: library "libtaml.so" not found
为什么不建议你在 Docker 中跑 Mysql ?
今日睡眠质量记录61分
《MySQL入门很轻松》第4章:数据表中存放的数据类型
基于ABP的AppUser对象扩展
【集训DAY5】选数字【数学】
【SSL集训DAY2】有趣的数【数位DP】
数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口
CST Studio Suite 2021 software installation package and installation tutorial
Redis 非关系型数据库学习(一) ---- Redis 的安装
断开和服务器共享连接的方法「建议收藏」
防火墙之系统防护
Redis-基本介绍/linux下环境配置/配置文件
下班后用微信处理工作时发病身亡,法院判决:工伤!
ES6 Beginner to Mastery #13: Extension Methods for Arrays 2
大龄测试员刚迈过了 35 岁这个“坎儿”,和大家说点儿心里话
deepstream学习笔记(三):deepstream-imagedata-multistream解析与接入适配yolov5模型测试
redis distributed lock code example
服务发现@EnableDiscoveryClient
[C language] Address book "Static Memory Version"