メインコンテンツまでスキップ
メインコンテンツまでスキップ

Linux上でs390x (zLinux)のビルド

ClickHouseはs390xに対して実験的なサポートを提供しています。

s390x用ClickHouseのビルド

s390xには2つの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を使用してクリックハウスをデバッグモードで実行します:

別のシェルで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"のようにします。
  • 起動前にクリックハウス実行可能ファイルをデバッグモードで実行することを確認してください。(自動化するpreLaunchTaskを作成することも可能です。)

例の設定

cmake-variants.yaml

launch.json

settings.json

これにより、異なるビルドがbuildフォルダ内の異なるサブフォルダに配置されます。

run-debug.sh

tasks.json

コンパイルされた実行可能ファイルをserverモードでバイナリの隣のtmpフォルダで実行するタスクを定義し、programs/server/config.xmlの下の設定から構成します。