源码迁移修改级别说明
修改级别 |
说明 |
样例 |
|
|---|---|---|---|
规则项 |
为了您的程序能够在鲲鹏平台上运行,必须进行修改。 |
存在不支持的“-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
|
父主题: 常用操作