在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
。