当前位置:网站首页>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 。
边栏推荐
- 构建平衡二叉树「建议收藏」
- 新开窗口 展示协议
- 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...
- Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
- 【SSL集训DAY3】控制棋盘【二分图匹配】
- selenium和驱动安装
- Jpa 查询view or 无主键的table
- 南大通用数据库-Gbase-8a-学习-04-部署分布式集群
- Golden Warehouse Database KingbaseGIS User Manual (6.6. Geometric Object Verification Function, 6.7. Spatial Reference System Function)
- 断开和服务器共享连接的方法「建议收藏」
猜你喜欢
为什么不建议你在 Docker 中跑 Mysql ?
Redis-基本介绍/linux下环境配置/配置文件
YOLOV5 study notes (7) - training your own data set
ECCV 2022 | Microsoft Open Source TinyViT: Pre-training Capabilities for Small Models
【猜凶手,猜名次,杨辉三角】经典小学奥数的代码逻辑是什么?
FreeRTOS任务基础
2022中高级Android面试题汇总来助你通过面试
CST Studio Suite 2021软件安装包和安装教程
【SSL集训DAY2】有趣的数【数位DP】
Jpa 查询view or 无主键的table
随机推荐
基于ABP的AppUser对象扩展
为什么不建议你在 Docker 中跑 Mysql ?
Redis-基本介绍/linux下环境配置/配置文件
解锁时间生成与比较
基于ABP的AppUser对象扩展
蔚来杯2022牛客暑期多校训练营7 CFGJ
【SSL集训DAY2】Sort【树状数组】
下载markdown软件Obsidian(解决官网下载速度慢)
deepstream学习笔记(三):deepstream-imagedata-multistream解析与接入适配yolov5模型测试
共创 Ray 中文社区,Ray Forward Meetup 2022 直播邀你参加!
十位时间戳转化成时间
【猜凶手,猜名次,杨辉三角】经典小学奥数的代码逻辑是什么?
[SSH]如何敲一条线
Eureka自我保护
考柏的感慨
[Cloud native] Kubernetes orchestration tools
Golden Warehouse Database KingbaseGIS User Manual (6.4. Geometry Object Access Function)
程序员从佩洛西窜访事件中可以学到什么?
基于 LSTM 的分布式能源发电预测(Matlab代码实现)
mysql无法远程连接 Can‘t connect to MySQL server on ‘xxx.xxx.xxx.xxx‘ (10060 “Unknown error“)