---
title: 源码迁移修改级别说明
description: "**表1 源码迁移修改级别说明**"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/sourcecodeporting/DevKit_Porting_0134.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/sourcecodeporting/DevKit_Porting_0134.html
indexId: f5ceb3faaaee7709de1fe20cf6e11c25480361fb71e63c9dd45d83f4f5604cfe81
---
# 源码迁移修改级别说明


**表1 源码迁移修改级别说明**

| 修改级别 | 说明 | 样例 | 样例 |
| --- | --- | --- | --- |
| 规则项 | 为了您的程序能够在鲲鹏平台上运行，必须进行修改。 | 存在不支持的“\-m64”编译选项，请替换为“\-mabi=lp64”，否则会影响程序在鲲鹏平台上运行。 | 代码样例如下： abc = \-m64 修改方式样例如下： abc = \-mabi=lp64 |
| 建议项\_优化类 | 不影响编译通过，但可能对运行性能或平台兼容性有一定影响，建议根据实际情况评估是否修改。 | 未添加“\-march”编译选项，编译器仅使用最基础的指令集和通用优化，不会使用指令集扩展，并且无法充分利用鲲鹏平台硬件性能。 | 代码样例如下： CFLAGS=\-g3 \-W \-Wall \-m3dnow \-Wno\-unused\-but\-set\-variable \-O4 \-DVERSION="$(VERSION)" \-DRELEASE="$(RELEASE)" \-D\_FILE\_OFFSET\_BITS=64 \-D\_GNU\_SOURCE \-mpopcnt \-msse4.2 修改方式样例如下： CFLAGS=\-g3 \-W \-Wall \-m3dnow \-Wno\-unused\-but\-set\-variable \-O4 \-DVERSION="$(VERSION)" \-DRELEASE="$(RELEASE)" \-D\_FILE\_OFFSET\_BITS=64 \-D\_GNU\_SOURCE \-mpopcnt \-msse4.2 \-march=armv8\-a |
| 建议项\_规范类 | 不影响编译通过，但可能存在语法、精度或函数使用上的潜在兼容性问题，建议检查并调整。 | 为确保鲲鹏平台上普通字符的默认行为与x86平台一致，建议使用“\-fsigned\-char”显式指定有符号字符类型。 | 代码样例如下： CFLAGS=\-g3 \-W \-Wall \-m32 \-m3dnow \-Wno\-unused\-but\-set\-variable \-O0 \-DDEBUG=1 \-DVERSION="$(VERSION)" \-DRELEASE="$(RELEASE)" \-D\_FILE\_OFFSET\_BITS=64 \-D\_GNU\_SOURCE \-mpopcnt \-msse4.2 修改方式样例如下： CFLAGS=\-g3 \-W \-Wall \-m32 \-m3dnow \-Wno\-unused\-but\-set\-variable \-O0 \-DDEBUG=1 \-DVERSION="$(VERSION)" \-DRELEASE="$(RELEASE)" \-D\_FILE\_OFFSET\_BITS=64 \-D\_GNU\_SOURCE \-mpopcnt \-msse4.2 \-fsigned\-char |
| 建议项\_通用类 | 不影响编译通过，但为了提升代码的通用性和平台兼容性，推荐根据建议进行修改。 | 由于x86与鲲鹏平台在寄存器、操作数顺序、约束等方面存在差异，该代码在鲲鹏平台服务器上可能报错，建议进行适配修改。 | 代码样例如下： \_asm("crc32b %1, %0" : "+r"(crc) : "rm"(v)); 修改方式样例如下： \#if defined(\_\_x86\_64\_\_) \_asm("crc32b %1, %0" : "+r"(crc) : "rm"(v)); \#elif defined(\_\_aarch64\_\_) \_\_asm\_\_ \_\_volatile\_\_("crc32cb %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value)); \#endif |
