跳到主要内容
跳到主要内容

在s390x (zLinux)上构建

ClickHouse对s390x有实验支持。

为s390x构建ClickHouse

s390x有两个与OpenSSL相关的构建选项:

  • 默认情况下,OpenSSL在s390x上作为共享库构建。这与其他所有平台不同,在其他平台上,OpenSSL是作为静态库构建的。
  • 要无论如何将OpenSSL构建为静态库,请将 -DENABLE_OPENSSL_DYNAMIC=0 传递给CMake。

这些说明假设主机机器是x86_64,并且拥有根据构建说明本地构建所需的所有工具。它还假设主机是Ubuntu 22.04,但以下说明应该也适用于Ubuntu 20.04。

除了安装用于本地构建的工具外,还需要安装以下附加软件包:

如果您希望交叉编译rust代码,请安装s390x的rust交叉编译目标:

s390x构建使用mold链接器,从https://github.com/rui314/mold/releases/download/v2.0.0/mold-2.0.0-x86_64-linux.tar.gz下载并将其放入您的 $PATH 中。

要为s390x构建:

运行

构建完成后,可以使用以下命令运行可执行文件,例如:

调试

安装LLDB:

要调试s390x可执行文件,使用QEMU以调试模式运行clickhouse:

在另一个shell中运行LLDB并附加,替换 <Clickhouse Parent Directory><build directory> 为与您的环境对应的值。

Visual Studio Code 集成

  • CodeLLDB 扩展是可视调试所必需的。
  • Command Variable 扩展可以帮助动态启动,如果使用 CMake Variants
  • 确保将后端设置为您的LLVM安装,例如 "lldb.library": "/usr/lib/x86_64-linux-gnu/liblldb-15.so"
  • 启动前,请确保以调试模式运行clickhouse可执行文件。(也可以创建一个 preLaunchTask 来自动化此过程)

示例配置

cmake-variants.yaml

launch.json

settings.json

这也会将不同的构建放在build文件夹的不同子文件夹下。

run-debug.sh

tasks.json

定义一个任务,以在 tmp 文件夹下以 server 模式运行编译的可执行文件,该文件夹与二进制文件相邻,配置来自 programs/server/config.xml