1.代码迁移工具是什么
由于处理器支持的指令集不同,开发者需要对代码进行跨平台的迁移。通常,代码迁移是件复杂又繁琐的工作,需要花费开发者大量精力对软件包、源代码、依赖库文件进行人工分析、检查和识别,手动修正不同指令集之间的相关差异,这些差异主要涉及语法、 指令、函数和库文件支持情况。Kunpeng Porting Advisor鲲鹏代码迁移工具用来解决用户代码可迁移人工排查效率低的问题。
鲲鹏代码迁移工具是一款可以简化应用迁移到鲲鹏架构服务器过程的工具,对海量代码进行快速地自动化扫描和分析帮助开发者实现高效的代码迁移。
2.代码迁移工具的功能
3.功能特性
- 软件迁移评估 检查用户提供的软件安装包,识别依赖关系,并提供鲲鹏兼容版本的so依载库对应rpm的包OS发行版官方下载链接
检查用户在x86服务器上已安装的软件,识别依赖关系,并提供鲲鹏兼容版本的so依赖库对应rpm的包OS发行版官方下载连接。 - 源码迁移 检查用户C/C++/汇编/Fortran代码软件构建工程文件,并指导用户如何迁移该文件。
检查用户C/C++/汇编/Fortran/python/Java/Scala/Go软件构建工程文件使用的链接库,并提供可迁移性信息。
检查用户C/C++/汇编/Fortran软件源码,并指导用户如何迁移源文件。 - 软件包重构 软件包重构,分析用户x86软件包构成,重构为适用于鲲鹏平台的软件包。
- 专项软件迁移 专项软件迁移,基于丰富的软件迁移经验,帮助用户快速迁移Web、数据库、大数据、高性能计算四大解决方案类软件。
- 鲲鹏亲和分析 目前含64位运行模式检查、结构体字节对齐检查、缓存行字节对齐检查、内存一致性检查、构建杂和检查。
4.应用场景
- 为C/C++代码提供迁移指导
- 对最常用的X86汇编指令进行识别并转换
- 支持自动化迁移开源软件和构建鲲鹏软件包
专向软件迁移(一键下载开源代码,并编译,构建鲲鹏软件包)和软件包重构(快速构建鲲鹏软件包,支持RPM和DEB格式的软件包)
5.部署方式
两种用户访问模式
CLI方式(命令行方式)
Web/IDE方式(通过浏览器和IDE远程使用代码迁移工具各功能,最终迁移分析结果输出到.csv和.html文件中,用户可以根据迁移建议进行处理)
6.源码迁移
7.源码迁移业务流程
1.输入:源码文件(c/c++,java,go...),汇编源代码文件,软件构件文件
2.分析处理:用户c/c++...代码需要迁移部分识别,汇编源码同功能指令集、兼容指令集
迁移部分,从构建工程配置文件中识别需要迁移/ 替代的编译依赖库,根据知识库给出迁移指导建议
3.报告文件: 分析文件、分析时间截等信息 ;关键修改内容综述,简单说明, 详细csv或htm报告,需修改的代码的行号,更改点及指导建议 ;编译依赖库迁移或替换建议; 迁移预估工作量
8.汇编翻译
9.软件迁移评估流程
10.内存一致性
- 静态检查,检查用户软件迁移到鲲鹏平台可能存在的弱内存序问题并修复
- 自动修复功能,更新用户使用的GCC编译器,在用户软件的编译过程中自动完成弱内存序问题的修复
- 支持下载静态检查工具产生的BC文件,可根据实际需要进行BC文件扫描分析
- 静态检查工具、编译器自动修复工具组合使用,可一键式修复
- 支持自动生成目标工程的中间文件,不需要用户修改编译脚本