安装时报指令错误的处理

2021-05-21 xingchen

概述

在一些非官方指定的系统上面 (官方指定的系统:https://opengauss.org/zh/docs/latest/docs/Description/%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83.html), 使用官网提供的镜像安装数据库,有时会遇到一些 "非法指令" "illegal instruction" 的问题, 这些往往是由于CPU指令集不兼容导致的。

此处我们只说下在ARM上面安装失败的问题。

常见的主要如下:

官网发布的 openEuler_arm 包,在编译的时候,打开了ARM_LSE指令集做了编译的优化。但是对于一些其他版本的arm服务器,不一定支持。

代码注释中这么写的:

build\script\mpp_package.sh

# it may be risk to enable 'ARM_LSE' for all ARM CPU, but we bid our CPUs are not elder than ARMv8.1

实测在 鲲鹏920麒麟990 的cpu芯片下是支持安装的。 cpu可以通过 lscpu 名称查看。

对于其他不自持该指令的系统,需要去掉 -D__ARM_LSE 指令重新编译即可。

在编译脚本中 build\script\mpp_package.sh,删除掉所有的 -D__ARM_LSE , 重新编译数据库。

patch如下图:

【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文仅供读者参考,由此产生的所有法律责任均由读者本人承担。