超实用干货(1)-Apache greenplum在aarch64架构体系的适配编译

本文档详细记录了在EulerOS2.0sp8系统,使用aarch64架构的环境下,编译GreenPlum 6.19.1的步骤,包括依赖包的安装、源码修改以及编译过程。在编译过程中,需要注意对源码的特定指令集修改以适应aarch64,并确保所有必要的依赖包已正确安装。最终成功编译后的结果显示在指定目录下。
摘要由CSDN通过智能技术生成

编译环境

操作系统:EulerOS 2.0 sp8

● 内核:4.19.36

● CPU:aarch64

编译所需软件类别

cmake-3.23.0-rc1.tar.gz

下载地址:

https://cmake.org/files/v3.23/cmake-3.23.0-rc1.tar.gz

gp-xerces-3.1.2-p1.zip

下载地址:

https://github.com/greenplum-db/gp-xer ces/archive/refs/tags/v3.1.2-p1.zip

ninja-1.10.2.zip

下载地址:

https://github.com/ninja-build/ninja/archive /refs/tags/v1.10.2.zip

re2c-3.0.zip

下载地址:

https://github.com/skvadrik/re2c/archive/refs/ta gs/3.0.zip

zstd-1.5.2.tar.gz

下载地址:

https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz

配置yum源,并安装如下依赖包

autoconf

automake

libtool

gcc

curl-devel

bzip2-devel

python-devel

openssl-devel

readline-devel

perl-ExtUtils-Embed

libxml2-devel

openldap-devel

pam

pam-devel

apr-devel

libevent-devel

libyaml

libyaml-devel

libedit-devel

libffi-devel

bison

flex

flex-devel

安装python依赖包

# 使⽤pip 进⾏python包管理,命令如下:

pip install --upgrade pip

pip install --no-cache-dir lockfile paramiko setuptools psutil conan

逐个安装软件列表内容

可以根据每个软件的readme⽂件进⾏安装

编译

编译GreenPlum 需要cmake和gcc,在上⾯操作中已经配置完成,开始前可通过如下命令进⾏确认

检查gcc版本

[root@RI_BDTL ~]# gcc --version

gcc (GCC) 7.3.0

检查cmake版本

[root@RI_BDTL ~]# cmake --version

cmake version 3.23.0-rc1

准备源码包

6.19.1-src-full.tar.gz

下载地址:

https://github.com/greenplum-db/gpdb/releases/download/6.19.1/ 6.19.1-src-full.tar.gz

修改源码 (6.19.1源码中没有对平台判断,修改为aarch64⽀持的指令)

[root@RI_BDTL packages]# tar -zxvf 6.19.1-src-full.tar.gz

[root@RI_BDTL packages]# vi gpdb_src/src/backend/gporca/libgpos/includ e/gpos/utils.h

修改 gpdb_src/src/backend/gporca/libgpos/include/gpos/utils.h 中22⾏和23⾏为:

#define GPOS_ASMFP asm volatile("mov %0, fp" : "=g"(ulp));

#define GPOS_ASMSP asm volatile("mov %0, sp" : "=g"(ulp));

编译,编译命令使⽤的readme中的命令,默认是带orca编译的,这⾥通过 --enable-orca 显示指定了

[root@RI_BDTL packages]# cd gpdb_src

# Configure build environment to install at /usr/local/greenplum-6.19.1

[root@RI_BDTL gpdb_src]# export LD_LIBRARY_PATH=/usr/local/gp-xerces/l ib/ CFLAGS="-I/usr/local/gp-xerces/include" LDFLAGS="-L/usr/local/gp-x erces/lib/"

[root@RI_BDTL gpdb_src]# ./configure --enable-orca --with-perl --withpython --with-libxml --with-gssapi --prefix=/usr/local/greenplum-6.19.1

[root@RI_BDTL gpdb_src]# make -j8

[root@RI_BDTL gpdb_src]# make -j8 install

漫⻓的等待之后,出现如下提示,就说明编译成功了

Greenplum Database installation complete

查看编译结果

[root@RI_BDTL local]# ls -lrt greenplum-6.19.1/

总⽤量 32

drwx------ 3 gpadmin gpadmin 4096 2⽉ 11 15:47 docs

drwx------ 4 gpadmin gpadmin 4096 2⽉ 11 16:11 share

drwx------ 4 gpadmin gpadmin 4096 2⽉ 11 16:14 include

drwx------ 5 gpadmin gpadmin 4096 2⽉ 11 16:14 lib

-rw------- 1 gpadmin gpadmin 491 2⽉ 11 16:14 greenplum_path.sh

drwx------ 2 gpadmin gpadmin 4096 2⽉ 11 16:14 libexec

drwx------ 2 gpadmin gpadmin 4096 2⽉ 11 16:14 sbin

drwx------ 7 gpadmin gpadmin 4096 2⽉ 11 16:14 bin

总结

编译过程并不复杂,难点在于有⼀些依赖包安装的不全,导致编译不成功。

另外就是源码包6.19.1中对aarch64指令集的修改,使GreenPlum可以正常编译。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值