创建分析任务
源码迁移功能分析用户C/C++/ASM/Fortran/Go/解释型语言软件的可迁移性。
前提条件
已成功登录鲲鹏DevKit。
- 任务运行过程中会执行上传源码包中构建文件的构建命令,请确保上传的内容为需要进行分析检查的内容且不存在安全问题,避免影响服务器正常运行。
- “/opt”为工具默认安装目录,下文以此默认路径为例,请根据实际情况替换。
- 以项目工程为单位进行源码扫描,可以提升扫描结果准确性。
- 源码迁移功能在Web界面中需要手动上传文件或压缩包;在插件工具中支持扫描本地工程,若源码为压缩包格式,请先解压然后选择解压后文件夹。
操作步骤
- 在页面左侧,选择“源码迁移”单击进入创建分析任务区。
- 在创建分析任务区对以下参数进行配置。图1 源码迁移
表1 源码迁移参数说明 参数
说明
任务名称
源码迁移任务名称,工具默认会自动生成任务名称,也可根据实际情况进行自定义修改。
源码文件存放路径
本地项目工程或源码文件存放路径。
需要填写相对路径,如手动上传文件至工具指定路径,则需为devkit用户开通读写和执行权限,再单击此输入框选择下拉框中对应的源码路径即可。
若无相应存放路径,则需手动创建并为devkit用户开通读写和执行权限。
在“上传”下拉菜单中可选择:- 压缩包:选择上传源码文件压缩包,工具会自动解压。
说明:
- 支持上传tar,tar.bz,tar.bz2,tar.gz,tar.xz,tbz,tbz2,tgz,txz,zip格式的压缩包,只允许同时上传一个压缩包。源码文件压缩包小于或等于1GB,解压后小于或等于剩余磁盘空间的一半。
- 工具会自动将压缩包解压至和压缩包同名的文件夹。例如上传的压缩包为test.zip,工具会自动解压至test文件夹。
- 手动上传软件包时,需先检查是否存在上传目录,若不存在,则需创建工具指定路径,并给devkit用户开通读写和执行权限。
- 文件夹:选择上传本地解压的源码文件夹。
说明:
只允许同时上传一个文件夹,文件夹小于或等于剩余磁盘空间的一半。
源码类型
选择源码类型。可选择:
目标操作系统
选择目标系统版本。可选择:
- BC-Linux 7.6/7.7
- CentOS 7.4/7.5/7.6/7.7/8.0/8.1/8.2
- Deepin V15.2
- Debian 10
- EulerOS 2.8
- iSoft 5.1
- Kylin V10 SP1/SP2/SP3
- KylinSecOS 3.4/3.5.2
- LinxOS 6.0.90/6.0.100
- NeoKylin V7U5/V7U6
- openEuler 20.03
- openEuler 20.03 SP1/SP2/SP3
- openEuler 22.03
- openEuler 22.03 SP1/SP2/SP3
- openEuler 24.03 LTS
- SUSE SLES 15.1
- Ubuntu 18.04.x/20.04.x
- UOS 20 SP1
- uosEuler 20
- uos20-1020e
- uos20-1050e
- uos20-1060e
- 更多
说明:单击“更多”后,根据页面上的步骤升级依赖字典,然后查看更新后的操作系统列表。
目标系统内核版本
目标操作系统对应的内核版本。
- BC-Linux 7.6支持4.19.25
- BC-Linux 7.7支持4.19.25
- CentOS 7.4支持4.11.0
- CentOS 7.5支持4.14.0
- CentOS 7.6支持4.14.0
- CentOS 7.7支持4.18.0
- CentOS 8.0支持4.18.0
- CentOS 8.1支持4.18.0
- CentOS 8.2支持4.18.0
- Deepin V15.2支持4.19.34
- Debian 10支持4.14.0
- EulerOS 2.8支持4.19.36
- iSoft 5.1支持4.19.90
- Kylin V10 SP1支持4.19.90
- Kylin V10 SP2支持4.19.90
- Kylin V10 SP3支持4.19.90
- KylinSecOS 3.4 支持4.19.90
- KylinSecOS 3.5.2 支持5.10.0
- LinxOS 6.0.90支持4.19.0
- LinxOS 6.0.100支持4.19.0
- NeoKylin V7U5支持4.14.0
- NeoKylin V7U6支持4.14.0
- openEuler 20.03支持4.19.90
- openEuler 20.03 SP1支持4.19.90
- openEuler 20.03 SP2支持4.19.90
- openEuler 20.03 SP3支持4.19.90
- openEuler 22.03 支持5.10.0
- openEuler 22.03 SP1支持5.10.0
- openEuler 22.03 SP2支持5.10.0
- openEuler 22.03 SP3支持5.10.0
- openEuler 24.03 LTS支持6.6.0
- SUSE SLES 15.1支持4.12.14
- Ubuntu 18.04.x支持4.15.0
- Ubuntu 20.04.x支持5.4.0
- UOS 20 SP1支持4.19.0
- uosEuler 20支持4.19.90
- uos20-1020e支持4.19.90
- uos20-1050e支持4.19.90
- uos20-1060e支持4.19.90
编译器版本
选择编译器版本。
目标系统默认的编译器版本:
- BC-Linux 7.6默认为GCC 4.8.5
- BC-Linux 7.7默认为GCC 4.8.5
- CentOS 7.4默认为GCC 4.8.5
- CentOS 7.5默认为GCC 4.8.5
- CentOS 7.6默认为GCC 4.8.5
- CentOS 7.7默认为GCC 4.8.5
- CentOS 8.0默认为GCC 8.2.0
- CentOS 8.1默认为GCC 8.3.0
- CentOS 8.2默认为GCC 8.3.0
- Deepin 15.2默认为GCC 6.3.0
- Debian 10默认为GCC 8.3.0
- EulerOS 2.8默认为GCC 7.3.0
- iSoft 5.1默认为GCC 7.3.0
- Kylin V10 SP1默认为GCC 7.3.0
- Kylin V10 SP2默认为GCC 7.3.0
- Kylin V10 SP3默认为GCC 7.3.0
- KylinSecOS 3.4默认为GCC 7.3.0
- KylinSecOS 3.5.2默认为GCC 10.3.0
- LinxOS 6.0.90默认为GCC 6.3.0
- LinxOS 6.0.100默认为GCC 8.3.0
- NeoKylin V7U5默认为GCC 4.8.5
- NeoKylin V7U6默认为GCC 4.8.5
- openEuler 20.03默认为BiSheng Compiler 2.5.0.1
- openEuler 20.03 SP1默认为GCC 7.3.0
- openEuler 20.03 SP2默认为GCC 7.3.0
- openEuler 20.03 SP3默认为GCC 7.3.0
- openEuler 22.03 默认为BiSheng Compiler 2.5.0.1
- openEuler 22.03 SP1默认为GCC 10.3.0
- openEuler 22.03 SP2默认为GCC 10.3.0
- openEuler 22.03 SP3默认为GCC 10.3.0
- openEuler 24.03 LTS默认为GCC 12.3.0
- SUSE SLES 15.1默认为GCC 7.4.0
- Ubuntu 18.04.x默认为GCC 7.3.0
- Ubuntu 20.04.x默认为GCC 9.3.0
- UOS 20 SP1默认为GCC 8.3.0
- uosEuler 20默认为GCC 7.3.0
- uos20-1020e默认为GCC 7.3.0
- uos20-1050e默认为GCC 7.3.0
- uos20-1060e默认为GCC 7.3.0
C/C++/ASM和Go可选择:
- BiSheng Compiler 2.1.0/2.3.0/2.4.0/2.5.0/2.5.0.1/3.0.0/3.1.0/3.2.0/4.0.0
- GCC 4.8.5/4.9.3/5.1.0/5.2.0/5.3.0/5.4.0/5.5.0/6.1.0/6.2.0/6.3.0/6.4.0/6.5.0/7.1.0/7.2.0/7.3.0/7.4.0/8.1.0/8.2.0/8.3.0/9.1.0/9.2.0/9.3.0/10.1.0/10.2.0/10.3.0/10.3.1/12.3.0
- GCC for openEuler 2.3.7
说明:- C/C++/ASM与GO语言共用编译器版本。
- C/C++/ASM和Fortran源码类型都选择的情况下,BiSheng Compiler版本与FLANG版本之间相互绑定。
Fortran可选择:
- GFORTRAN 7/8/9
- FLANG 2.1.0/2.3.0/2.4.0/2.5.0/2.5.0.1/3.0.0/3.1.0/3.2.0
构建工具
选择构建工具。可选择:
- make
- cmake
- automake
- go
说明:
“go”选项只在“源码类型”仅勾选“Go”或同时勾选“Go”与“解释型语言”时可用。
编译命令
源码编译命令。
编译命令需根据构建工具配置文件确定,具体请参考通过构建工具配置文件识别编译命令。
自定义x86宏
自定义x86平台宏。
输入自定义宏时,多个宏之间请用“;”进行分割。
说明:如果用户所处的环境Glibc版本低于2.28,则无法使用最新的汇编文件自动翻译功能,如有需要,请单击页面上的“查看安装指导”,按照指示进行操作。
- 压缩包:选择上传源码文件压缩包,工具会自动解压。
- 单击“开始分析”,生成分析报告。
弹窗页面显示任务分析进度,分析完成后,会自动跳转至“迁移报告”界面。
- 用户可在任务进行过程中单击关闭,取消任务。
- 支持多个用户同时创建分析任务。
- 任务分析失败或评估结果为无需迁移时会产生空白报告。
- 解压后的源码文件路径中仅包含如下关键字,或关键字前带“_”,或关键字后带“_”,或关键字后为文件后缀时,工具默认该文件无需迁移,不进行扫描。可在porting.log中查看未进行扫描的文件。
关键字:PPC,PPC64,s390,s390x,powerpc,alpha,MIPS,itanium,WIN64,WIN32,BOOST_COMP_MSVC,arm,aarch64,sparc,sparc64
- 分析结果可能因环境不同而产生差异,属于正常情况。
- 若提示任务超时,请参见用户进行任务时提示任务超时进行处理。