Skip to main content
ClickHouse prend en charge s390x à titre expérimental.

Compilation de ClickHouse pour s390x

Comme les autres plateformes, s390x compile OpenSSL sous forme de bibliothèque statique. Si vous souhaitez effectuer la compilation avec une version dynamique d’OpenSSL, vous devez passer -DENABLE_OPENSSL_DYNAMIC=1 à CMake. Ces instructions partent du principe que la machine hôte est sous Linux x86_64/ARM et dispose de tous les outils nécessaires pour une compilation native, comme indiqué dans les instructions de compilation. Elles supposent également que l’hôte utilise Ubuntu 22.04, mais les instructions suivantes devraient aussi fonctionner sur Ubuntu 20.04. En plus d’installer les outils utilisés pour compiler nativement, vous devez installer les paquets supplémentaires suivants :
Pour compiler pour l’architecture s390x :

Exécution

Pour l’émulation, vous aurez besoin du binaire utilisateur statique de QEMU pour s390x. Sous Ubuntu, il peut être installé avec :
Une fois compilé, le binaire peut être lancé, par exemple, avec :

Débogage

Installez LLDB :
Pour déboguer un exécutable s390x, exécutez ClickHouse à l’aide de QEMU en mode de débogage :
Dans un autre shell, lancez LLDB et attachez-le, puis remplacez <Clickhouse Parent Directory> et <build directory> par les valeurs correspondant à votre environnement.

Intégration à Visual Studio Code

  • L’extension CodeLLDB est requise pour le débogage visuel.
  • L’extension Command Variable peut faciliter les lancements dynamiques si vous utilisez CMake Variants.
  • Assurez-vous de configurer le backend pour qu’il pointe vers votre installation LLVM, par exemple : "lldb.library": "/usr/lib/x86_64-linux-gnu/liblldb-21.so"
  • Assurez-vous d’exécuter l’exécutable ClickHouse en mode de débogage avant le lancement. (Il est également possible de créer une preLaunchTask pour automatiser cela)

Exemples de configuration

cmake-variants.yaml

launch.json

settings.json

Cela placerait également différents builds dans des sous-dossiers distincts du dossier build.

run-debug.sh

tasks.json

Définit une tâche pour exécuter l’exécutable compilé en mode server dans un dossier tmp situé à côté des binaires, avec la configuration issue de programs/server/config.xml.
Dernière modification le 3 juillet 2026