在 Linux 上为 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 可执行文件,请以调试模式运行 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
。