创建分析任务
源码迁移功能分析用户C/C++/ASM/Fortran/Go/解释型语言软件的可迁移性。
前提条件
- 已成功登录鲲鹏DevKit。
 - 若迁移报告需要显示源码迁移人力,请单击页面右上角
,在“扫描参数设置”中将“显示工作量评估结果”设置为“是”。 
 
     - 任务运行过程中会执行上传源码包中构建文件的构建命令,请确保上传的内容为需要进行分析检查的内容且不存在安全问题,避免影响服务器正常运行。
 - “/opt”为工具默认安装目录,下文以此默认路径为例,请根据实际情况替换。
 - 以项目工程为单位进行源码扫描,可以提升扫描结果准确性。
 - 源码迁移功能在Web界面中需要手动上传文件或压缩包;在插件工具中支持扫描本地工程,若源码为压缩包格式,请先解压然后选择解压后文件夹。
 - 导入过滤列表的文件将会在任务执行过程中被忽略,不体现在相应报告中,过滤名单包括SO依赖库、JAR包或其他依赖二进制文件等。若需要进行依赖过滤操作,请参见依赖过滤列表导入。
 
操作步骤
- 在页面左侧,选择“源码迁移”单击
进入创建分析任务区。 - 在创建分析任务区对以下参数进行配置。图1 源码迁移
      表1 源码迁移参数说明 参数
说明
任务名称
源码迁移任务名称,工具默认会自动生成任务名称,也可根据实际情况进行自定义修改。
源码文件存放路径
本地项目工程或源码文件存放路径。
需要填写相对路径,如手动上传文件至工具指定路径,则需为devkit用户开通读写和执行权限,再单击此输入框选择下拉框中对应的源码路径即可。
若无相应存放路径,则需手动创建并为devkit用户开通读写和执行权限。
在“上传”下拉菜单中可选择:- 压缩包:选择上传源码文件压缩包,工具会自动解压。
              说明:
- 支持上传tar,tar.bz,tar.bz2,tar.gz,tar.xz,tbz,tbz2,tgz,txz,zip格式的压缩包,只允许同时上传一个压缩包。源码文件压缩包大小不超过限制(默认1024MB),解压后小于或等于剩余磁盘空间的一半。
 - 工具会自动将压缩包解压至和压缩包同名的文件夹。例如上传的压缩包为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
 - CTyunOS 22.06
 - 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/SP4
 - openEuler 24.03 LTS/SP1
 - 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
 - CTyunOS 22.06支持4.19.90
 - 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 22.03 SP4支持5.10.0
 - openEuler 24.03 LTS支持6.6.0
 - openEuler 24.03 SP1支持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
 - CTyunOS 22.06默认为GCC 7.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 22.03 SP4默认为GCC 10.3.0
 - openEuler 24.03 LTS默认为GCC 12.3.0
 - openEuler 24.03 SP1默认为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/4.1.0/4.2.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/2.3.8/3.0.1
 
说明:- 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/4.0.0/4.1.0/4.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
 - 分析结果可能因环境不同而产生差异,属于正常情况。
 - 若提示任务超时,请参见用户进行任务时提示任务超时的解决方法进行处理。