-
Notifications
You must be signed in to change notification settings - Fork 7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add powerpc build support #4132
Conversation
Stress test: in |
|
@danlark1, @alexey-milovidov - Hello, colleagues. With these commits Out-of-box Clickhouse (from github) have no successful build on ppc64le with gcc-9 or advance toolchain 13 on Ubuntu 18.04. Are these commits enough to build on ppc64le ? Were there any successful trials of clickhouse build on ppc64le platform ? Could you please inform me - are there any howto or tutorial descriptions for this build ? |
We have successfully built and run performance tests of ClickHouse on ppc64le more than one year ago. As we did not implement the support for this type of build in our CI, the build is most likely broken. |
Thanks, Alexei, for quick answer! As one can see, there is required dependency in libhdfs3 module on HWCrc32c code, which is represented in Clickhouse github project as implementation only for x86 platforms.
(e.g. according to this way - https://developer.ibm.com/linuxonpower/2017/08/11/adding-power-optimized-crc-32-existing-code/)
|
No. It's only used for interaction with HFDS (rare use case). |
I see. Thanks! |
There is another problem - with libcpuid on Ubuntu 18.04 ppc64le. There is no such lib for ppc64le. Did you use some stub instead of original lib or there is a way to disable libcpuid component in Clickhouse build process ? |
Yes, cpuid is also optional. Or, just change the condition from |
If we want to add PPC build to CI, we need to get "toolchain" for cross compilation. Also look here: https://clickhouse.tech/docs/en/development/build_cross_arm/ Then we can ensure that the build is not broken. |
Alexey (@alexey-milovidov ), thanks. With two "disable"-operations for libhdfs3 and libcpuid modules I have finally build Clickhouse on ppc64le just now. Clickhouse shows help message:
but I've not checked other functionalities of Clickhouse yet. (btw: I'm already using at13.0 advance toolchain from ibm.com, as I wrote in my first message in this conversation). |
Most likely everything will work file. Another examples of minimal testing after build:
Check that the exception handling works:
|
Please share all the build options that were used for ppc64le build. |
Here is the final string for build options, standing in ./Clickhouse_src_dir/build/ directory:
But it shoud be said that many preliminary additional changes were applied to source tree before executing these command line string. And only 19.7 and 19.8 branches of Clickhouse project have simply passed cmake configuration step (I've used 19.8 branch). |
@dmkoltsov Thank you! Could you please also share these changes? |
@alexey-milovidov , hello. Those efforts/changes, which helped me to successfully build Clickhouse on ppc64le platform, are hard to name patches - they mostly look like workaround to achieve the goal. Nevertheless, here is the successfull sequence of steps to build ClickHouse on Ubuntu 18.04.4 LTS ppc64le:
. |
@alexey-milovidov , could this workaround above be transformed on your side to live patch for some modern branch of clickhouse (and upstreamed), e.g. 19.17, 19.18, 20.x.x ? |
btw: in Clickhouse 19.8 ppc64le build with the workaround above - I've already met the bug (which, may be, fixed in later versions of Clickhouse) - it's the bug with clickhouse-client program. When using first query from tutorial:
Second query:
So, our further small experiments with SQL-syntax showed - it seems that there is a bug with "interpretation" of last string of such SQL-queries in clickhouse-client. |
@dmkoltsov It should be fixed in the latest version, as we moved from |
I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
For changelog. Remove if this is non-significant change.
Category (leave one):
Short description (up to few sentences):