更新时间:2022-03-18 GMT+08:00
分享

特性操作

单击工具左侧的,阅读免责声明和GCC版本升级说明后,弹出如图1所示界面,参数描述如表1所示。配置参数后单击“开始分析”,右下角显示分析进度。

以下内容中的“/opt/portadv”为服务端默认安装路径,如果为自定义安装,请使用对应的自定义安装路径替换。

图1 新建源码迁移任务
表1 源码迁移参数说明

参数

说明

源码文件存放路径

需要填写相对路径,可以通过以下两种方式实现:

  • 单击“上传”按钮上传压缩包(上传过程中自动解压)或文件夹。
  • 先将源码文件手动上传到服务器上本工具的指定路径下(例如:/opt/portadv/portadmin/sourcecode/),再单击填写框选择下拉框中的源码路径即可,也可以手动填写源码路径。
    说明:

    在扫描含全汇编的源码时,用户需要先在源码文件的根目录下编译生成make.log,然后再打包上传。例如:用户要扫描含纯汇编的源码example,需要先在/opt/portadv/用户名/sourcecode/example/下生成make.log,再填写相对路径example。

在“上传”下拉菜单中可选择:
  • 压缩包:选择上传源码文件压缩包,工具会自动解压。
    说明:
    • 支持上传tar,tar.bz,tar.bz2,tar.gz,tar.xz,tbz,tbz2,tgz,txz,zip格式的压缩包,只允许同时上传一个压缩包。源码文件压缩包小于或等于1GB,解压后小于或等于剩余磁盘空间的一半。
    • 工具会自动将压缩包解压至和压缩包同名的文件夹。例如上传的压缩包为test.zip,工具会自动解压至test文件夹。
  • 文件夹:选择上传本地解压的源码文件夹。
    说明:
    • 只允许同时上传一个文件夹,文件夹小于或等于剩余磁盘空间的一半。
    • IE浏览器不兼容文件夹上传功能,上传文件夹需要使用其他浏览器,如Google Chrome,Microsoft Edge。

源码类型

选择源码类型。可选择:

  • C/C++/ASM
  • Fortran
  • Go
  • 解释型语言

    目前支持的解释型语言包括Python、Java和Scala。

编译器版本

选择编译器版本。

目标系统默认的编译器版本:

  • 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
  • CentOS 8.1默认为GCC 8.3
  • CentOS 8.2默认为GCC 8.3
  • Deepin 15.2默认为GCC 6.3
  • Debian 10默认为GCC 8.3
  • EulerOS 2.8默认为GCC 7.3
  • iSoft 5.1默认为GCC 7.3
  • Kylin V10 SP1默认为GCC 7.3
  • LinxOS 6.0.90默认为GCC 6.3
  • NeoKylin V7U5默认为GCC 4.8.5
  • NeoKylin V7U6默认为GCC 4.8.5
  • openEuler 20.03默认为GCC 7.3
  • openEuler 20.03 SP1默认为GCC 7.3
  • openEuler 20.03 SP2默认为GCC 7.3
  • SUSE SLES 15.1默认为GCC 7.4
  • Ubuntu 18.04.x默认为GCC 7.3
  • Ubuntu 20.04.x默认为GCC 9.3
  • UOS 20 SP1默认为GCC 8.3
  • uosEuler 20默认为GCC 7.3

C/C++/ASM和Go可选择:

  • GCC 4.8.5/4.9.3/5.1/5.2/5.3/5.4/5.5/6.1/6.2/6.3/6.4/6.5/7.1/7.2/7.3/7.4/8.1/8.2/8.3/9.1/9.2/9.3
    说明:

    C/C++/ASM与GO语言共用编译器版本。

Fortran可选择:

  • GFORTRAN 7
  • GFORTRAN 8
  • GFORTRAN 9

构建工具

选择构建工具。可选择:

  • make
  • cmake
  • automake
  • go
    说明:

    “go”选项只在“源码类型”仅勾选“Go”或同时勾选“Go”“解释型语言”时可用。

编译命令

源码编译命令。

编译命令需根据构建工具配置文件确定,具体请参考通过构建工具配置文件识别编译命令

目标操作系统

选择目标系统版本。可选择:

  • 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
  • LinxOS 6.0.90
  • NeoKylin V7U5
  • NeoKylin V7U6
  • openEuler 20.03
  • openEuler 20.03 SP1
  • openEuler 20.03 SP2
  • SUSE SLES 15.1
  • Ubuntu 18.04.x
  • Ubuntu 20.04.x
  • UOS 20 SP1
  • uosEuler 20
  • 更多
说明:

点击“更多”后,根据页面上的步骤升级依赖字典,然后查看更新后的操作系统列表。

目标系统内核版本

目标操作系统对应的内核版本。

  • 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
  • LinxOS 6.0.90支持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
  • 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
说明:

如果用户所处的环境Glibc版本低于2.28,则无法使用最新的汇编文件自动翻译功能,如有需要,请单击页面上的“查看安装指导”,按照指示进行操作。

分析完成后,自动跳转至分析报告详情界面,如图2所示,参数描述如表2所示。

  • 也可以在分析报告的列表中,单击指定分析任务的报告名称查看分析报告。
  • 分析报告的名称为生成报告的时间。
  • 任务分析失败或评估结果为无需迁移时会产生空白报告。
  • 分析结果可能因环境不同而产生差异,属于正常情况。
图2 分析报告

要显示页面右上角的“源码迁移人力”,需在“扫描参数配置”页面将“显示工作量评估结果”选为“是”。

表2 迁移报告结果参数说明

参数

说明

配置信息

显示源码文件存放路径、是否执行源码增强检查、编译器版本、构建工具、编译命令、目标操作系统和目标系统内核版本。

与架构相关的依赖库文件

显示SO文件。

  • 针对兼容鲲鹏平台的动态库、静态库文件、软件包、可执行文件、Jar包等,用户可以直接单击处理建议中的“下载”,下载鲲鹏平台可用的文件,然后进行替换,或者下载鲲鹏版本源码,直接编译。对于一些未开源的依赖文件,工具无法提供下载URL,请自行获取后进行替换。
  • 针对鲲鹏平台兼容性未知的文件,请先在鲲鹏平台上验证。若不兼容,请联系供应方获取鲲鹏兼容版本,或获取源码并编译成鲲鹏兼容版本,或使用其他方案替代。

需要迁移的源文件

显示需要迁移的源文件总数和需要修改的代码行数,通过单击操作列“查看建议源码”可以快速进入对应的源码迁移建议页面。

文件类型包括C/C++ Source File,Fortran,makefile,Python,Go,Java,Scala以及ASM File,可通过筛选查看具体类型的文件。

文件所在的路径根据Unicode编码排序,需修改的代码行根据行数排序。

单击“下载报告 (.csv)”,下载的分析报告如图3所示,参数描述如表3所示。

图3 下载的分析报告
表3 分析报告的基本信息说明

参数

说明

Scanned time

扫描时间。

Configuration

Source Code File Path

扫描的源码文件存放路径。

Compiler Version

编译器版本。

Target OS

目标操作系统。

Target OS Kernel Version

内核版本。

Build Tool

构建工具。

Software make command

编译命令。

Interpreted(Python,Java,Scala)

分析对象是否包括解释型语言文件。

  • True:是
  • False:否

Go

分析对象是否包括Go语言文件。

  • True:是
  • False:否

Summary

Compatible: x, To be Verified: x, Total Dependencies: x

显示兼容鲲鹏平台的文件数,待验证文件数,依赖库文件总数。

Source Need ported

源码是否需要迁移。

  • Yes
  • No

Scanned xx C/C++/Fortran files, xx Makefile/CMakeLists.txt/Automake related files, total xx files need to be ported.

显示需要迁移的C/C++/Fortran文件和Makefile/CMakeLists.txt/Automake related文件总数以及文件个数。

Total xx lines C/C++/Makefile/CMakeLists.txt/Automake code and xx lines embedding ASM code need to be ported.

显示源码总行数以及需要迁移的内联汇编代码行数。

Scanned xx pure assembly files, xx pure assembly files to be ported.

显示全汇编文件总数以及需要迁移的汇编文件个数和汇编代码行数。

Scanned x Go files, total x Go files 28 lines need to be migrated.

显示Go文件总数一级需要迁移的Go文件个数和代码行数。

Scanned xx python files, total xx files xx lines need to be ported.

显示Python文件总数以及需要迁移的Python文件个数和Python代码行数。

Scanned xx java files, total xx files xx lines need to be ported.

显示Java文件总数以及需要迁移的Java文件个数和Java代码行数。

Scanned xx scala files, total xx files xx lines need to be ported.

显示Scala文件总数以及需要迁移的Scala文件个数和Scala代码行数。

Estimated transplant workload: xx person/months.(C/C++/Fortran/Go, 500

Line/PM; ASM, 250Line/PM)

显示源码迁移预估人力(x/人月)。

预估标准:1人月迁移工作量=500行C/C++/Fortran/Go源代码,或250行汇编代码。

Architecture-related Dependencies

显示依赖库文件扫描的详细信息:

  • File Name:文件名称
  • File Type:文件类型
  • Analysis Results:分析结果
  • Handling Suggestions:处理建议
  • URL:下载地址

Source files scan details are as follows:

显示源文件分析报告的详细信息:

filename:扫描文件全路径。

filetype:扫描文件的类型。

line number:函数在文件中的行号。

rows:函数在文件中的总行数。

category:关键字所属类型。

keyword:关键字名称。

suggestion:迁移建议或者提示建议。

description:关键字用法描述。

在“迁移报告”的操作中直接单击“查看建议源码”,可以查看源码迁移建议,参考建议修改源码后,可使用快捷键“ctrl+s”保存修改。

分享:

    相关文档

    相关产品

close