Commit Graph

809 Commits

Author SHA1 Message Date
feng lv
868dbc4bad use poll replace select
fix

fix
2021-10-13 09:13:35 +00:00
Pavel Cheremushkin
7b9358a597 adding codegen fuzzer + code generation script. new contrib added: libprotobuf-mutator 2021-10-12 03:21:31 +03:00
feng lv
a57e97d2e0 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-10-11 06:09:43 +00:00
Nikolai Kochetov
b8e77a0c62 Add -fcoroutines for g++ 2021-10-08 15:06:09 +03:00
feng lv
4841b31b56 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-10-07 13:20:08 +00:00
Nikita Mikhaylov
f3c50e563e -nostdlib++ 2021-10-05 10:51:49 +00:00
feng lv
86d31445fd Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-10-05 03:58:27 +00:00
alexey-milovidov
c410107994
Update CMakeLists.txt 2021-10-04 02:34:23 +03:00
Denis Glazachev
9901549c1a
Add space 2021-10-03 20:40:19 +04:00
Denis Glazachev
ca7b69b0f3 Manipulate with -Wreserved-identifier only if HAS_RESERVED_IDENTIFIER has been detected 2021-10-03 17:42:36 +04:00
feng lv
8a4092c55b Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-10-03 10:00:16 +00:00
Azat Khuzhin
cab0551c5b Add ability to compile using newer version fo glibc w/o using new symbols
In glibc 2.32 new version of some symbols had been added [1]:

    $ nm -D clickhouse | fgrep -e @GLIBC_2.32
                     U pthread_getattr_np@GLIBC_2.32
                     U pthread_sigmask@GLIBC_2.32

  [1]: https://www.spinics.net/lists/fedora-devel/msg273044.html

Right now ubuntu 20.04 is used as official image for building
ClickHouse, however once it will be switched someone may not be happy
with that fact that he/she cannot use official binaries anymore because
they have glibc < 2.32.

To avoid this dependency, let's force previous version of those
symbols from glibc.

Note, that I've tested this by compiling with glibc 2.32 and verifying
that output ELF does not have @GLIBC_2.32 symbols and also running that
binary inside ubuntu:20.04 image (that has glibc 2.31).

v1: -Wl,--wrap
v2: -Wl,--defsym
v3: -include
v4: fix versioning for aarch64
2021-10-01 21:01:59 +03:00
feng lv
ee02e52d3d Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-09-30 16:02:31 +00:00
Azat Khuzhin
d64587ef01 Bump cmake dependency to 3.14
libxz uses if(DEFINED CACHE{}) which has been added only in 3.14.
2021-09-29 10:02:47 +03:00
mergify[bot]
f7ebe0d247
Merge branch 'master' into enable-clang-vtables-optimization 2021-09-25 01:56:16 +00:00
feng lv
dc318000e4 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-09-15 14:12:49 +00:00
sdk2
9117c88a92 better flag check 2021-09-15 12:26:27 +08:00
sdk2
e56ae86f0b fix clang flag use-ctor-homing 2021-09-15 11:57:27 +08:00
feng lv
c58e232385 fix conflict 2021-09-14 06:41:57 +00:00
mergify[bot]
97fbdec71c
Merge branch 'master' into fix-build-clang-13-2 2021-09-11 15:03:52 +00:00
Azat Khuzhin
4e9b2c5d69 Relax ENABLE_CHECK_HEAVY_BUILDS restrictions on systems under pressure (increase RLIMIT_CPU)
The problem was with compiling src/AggregateFunctions/AggregateFunctionQuantile.cpp
2021-09-10 21:05:41 +03:00
mergify[bot]
e3b3439535
Merge branch 'master' into fix-build-clang-13-2 2021-09-10 12:05:54 +00:00
Azat Khuzhin
1ec0295c6f Increase RLIMIT_CPU for ENABLE_CHECK_HEAVY_BUILDS to fix UBsan build
Right now CI fails to compile UBsan while trying to compile src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionSumMap.cpp.o:

    2021-09-09 23:02:28 FAILED: src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionSumMap.cpp.o
    2021-09-09 23:02:28 prlimit --as=10000000000 --data=5000000000 --cpu=600 /usr/bin/ccache /usr/bin/clang++-12  -DAWS_SDK_VERSION_MAJOR=1 -DAWS_SDK_VERSION_MINOR=7 -DAWS_SDK_VERSION_PATCH=231 -DBOOST_ASIO_STANDALONE=1 -DCARES_STATICLIB -DENABLE_OPENSSL_ENCRYPTION -DPOCO_ENABLE_CPP11 -DPOCO_HAVE_FD_EPOLL -DPOCO_OS_FAMILY_UNIX -DSTD_EXCEPTION_HAS_STACK_TRACE=1 -DUNALIGNED_OK -DUSE_REPLXX=1 -DWITH_COVERAGE=0 -DWITH_GZFILEOP -DX86_64 -DZLIB_COMPAT -DZ_TLS=__thread -D__CLANG_SUPPORT_DYN_ANNOTATION__ -I../contrib/sentry-native/include -Iincludes/configs -I../base/glibc-compatibility/memcpy -I../src -Isrc -Isrc/Core/include -I../base/common/.. -Ibase/common/.. -I../contrib/cityhash102/include -I../contrib/cctz/include -Icontrib/zlib-ng -I../contrib/zlib-ng -I../base/pcg-random/. -I../contrib/aws-c-common/include -I../contrib/aws-c-event-stream/include -Icontrib/aws-s3-cmake/include -I../base/mysqlxx/.. -I../contrib/mariadb-connector-c/include -Icontrib/mariadb-connector-c/include -Icontrib/grpc/third_party/cares/cares -I../contrib/grpc/third_party/cares/cares -I../contrib/abseil-cpp -I../contrib/libpq -I../contrib/libpq/include -I../contrib/libstemmer_c/include -I../contrib/wordnet-blast -I../contrib/lemmagen-c/include -isystem ../contrib/datasketches-cpp/common/include -isystem ../contrib/datasketches-cpp/theta/include -isystem ../contrib/libcxx/include -isystem ../contrib/libcxxabi/include -isystem ../contrib/libunwind/include -isystem ../contrib/libpqxx/include -isystem ../contrib/rocksdb/include -isystem ../contrib/orc/c++/include -isystem contrib/orc/c++/include -isystem ../contrib/AMQP-CPP/include -isystem ../contrib/libuv/include -isystem ../contrib/AMQP-CPP -isystem ../contrib/s2geometry/src/s2 -isystem ../contrib/libhdfs3/include -isystem ../contrib/miniselect/include -isystem ../contrib/pdqsort -isystem ../contrib/croaring/cpp -isystem ../contrib/croaring/include -isystem ../contrib/fast_float/include -isystem ../contrib/msgpack-c/include -isystem ../contrib/aws/aws-cpp-sdk-s3/include -isystem ../contrib/aws/aws-cpp-sdk-core/include -isystem ../contrib/xz/src/liblzma/api -isystem ../contrib/zstd/lib -isystem ../contrib/re2 -isystem ../contrib/boost -isystem ../contrib/poco/Net/include -isystem ../contrib/poco/Foundation/include -isystem ../contrib/poco/NetSSL_OpenSSL/include -isystem ../contrib/poco/Crypto/include -isystem ../contrib/boringssl/include -isystem ../contrib/poco/Util/include -isystem ../contrib/poco/JSON/include -isystem ../contrib/poco/XML/include -isystem ../contrib/replxx/include -isystem ../contrib/fmtlib-cmake/../fmtlib/include -isystem ../contrib/double-conversion -isystem ../contrib/dragonbox/include -isystem contrib/re2_st -isystem ../contrib/NuRaft/include -isystem ../contrib/grpc/include -isystem ../contrib/protobuf/src -isystem src/Server/grpc_protos -isystem ../contrib/s2geometry/src -isystem ../contrib/sqlite-amalgamation -isystem ../contrib/libc-headers/x86_64-linux-gnu -isystem ../contrib/libc-headers -g -O2 -fdebug-prefix-map=/build=. -specs=/usr/share/dpkg/no-pie-compile.specs -Wdate-time  -g -fno-omit-frame-pointer -DSANITIZER -fsanitize=undefined -fno-sanitize-recover=all -fno-sanitize=float-divide-by-zero -fsanitize-blacklist=/build/tests/ubsan_suppressions.txt -fdiagnostics-color=always -Xclang -fuse-ctor-homing -fsized-deallocation  -gdwarf-aranges -pipe -mssse3 -msse4.1 -msse4.2 -mpclmul -mpopcnt -fasynchronous-unwind-tables -falign-functions=32   -Wall -Wno-unused-command-line-argument  -fdiagnostics-absolute-paths -fexperimental-new-pass-manager -Werror -Wextra -Wpedantic -Wno-vla-extension -Wno-zero-length-array -Wno-c11-extensions -Wcomma -Wconditional-uninitialized -Wcovered-switch-default -Wdeprecated -Wembedded-directive -Wempty-init-stmt -Wextra-semi-stmt -Wextra-semi -Wgnu-case-range -Winconsistent-missing-destructor-override -Wnewline-eof -Wold-style-cast -Wrange-loop-analysis -Wredundant-parens -Wreserved-id-macro -Wshadow-field -Wshadow-uncaptured-local -Wshadow -Wstring-plus-int -Wundef -Wunreachable-code-return -Wunreachable-code -Wunused-exception-parameter -Wunused-macros -Wunused-member-function -Wzero-as-null-pointer-constant -Weverything -Wno-c++98-compat-pedantic -Wno-c++98-compat -Wno-c99-extensions -Wno-conversion -Wno-ctad-maybe-unsupported -Wno-deprecated-dynamic-exception-spec -Wno-disabled-macro-expansion -Wno-documentation-unknown-command -Wno-double-promotion -Wno-exit-time-destructors -Wno-float-equal -Wno-global-constructors -Wno-missing-prototypes -Wno-missing-variable-declarations -Wno-nested-anon-types -Wno-packed -Wno-padded -Wno-return-std-move-in-c++11 -Wno-shift-sign-overflow -Wno-sign-conversion -Wno-switch-enum -Wno-undefined-func-template -Wno-unused-template -Wno-vla -Wno-weak-template-vtables -Wno-weak-vtables -O2 -g -DNDEBUG -O3  -fno-pie   -D OS_LINUX -nostdinc++ -std=gnu++2a -MD -MT src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionSumMap.cpp.o -MF src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionSumMap.cpp.o.d -o src/AggregateFunctions/CMakeFiles/clickhouse_aggregate_functions.dir/AggregateFunctionSumMap.cpp.o -c ../src/AggregateFunctions/AggregateFunctionSumMap.cpp

I guess the problem is CPU time, since looks like memory is fine (I
cannot reproduce it right now locally, maybe because I have clang-11).
2021-09-10 08:52:17 +03:00
Azat Khuzhin
4d82e8918b Update comments for ENABLE_CHECK_HEAVY_BUILDS 2021-09-10 08:39:56 +03:00
Nikita Mikhaylov
e575cc88fc Better 2021-09-09 21:11:07 +00:00
feng lv
40df3e6c7b reduce debug build binary size by clang optimazition 2021-09-08 19:52:49 +00:00
feng lv
7513cbe9d6 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into filelog-engine 2021-09-01 15:38:07 +00:00
Nikita Mikhaylov
0615bf27d6
Merge pull request #27990 from nikitamikhaylov/fix-clang-tidy
Build fuzzers in CI
2021-08-25 18:33:41 +03:00
Braulio Valdivielso
08b21339ec print out git status information at configure stage
This fixes #24373. Having the git status information available in the
CMake logs will make it easier to troubleshoot build failure reports.
2021-08-23 23:06:04 +01:00
feng lv
9f7785ffa9 fix conflict 2021-08-23 06:28:55 +00:00
Nikita Mikhaylov
80ebc6ccea Done 2021-08-22 15:09:49 +00:00
Azat Khuzhin
6a600e5f6f jemalloc: fix under osx (zone_register() had been optimized out again)
v2: use ld -u
v3: move -u to executable
2021-08-18 09:47:59 +03:00
Azat Khuzhin
788384be12 Drop MALLOC_LIBARIRIES usage
a) MALLOC_LIBARIRIES had been removed in
   528e42bc4c ("Improve jemalloc contrib")
b) after JEMALLOC_LIBRARIES left, that had been removed in
   c160b251ba ("Drop support for unbundled jemalloc") in #15828
2021-08-18 09:47:58 +03:00
Alexey Milovidov
6ff43a614c Use only SSE2 in "unbundled" build 2021-08-15 09:52:55 +03:00
Alexey Milovidov
eda489dde8 Untangle CPU features specification in CMake 2021-08-10 02:58:51 +03:00
Nikolay Degterinsky
9a45458faf Add bzip2 file compression 2021-08-07 00:25:52 +00:00
alesapin
4746002776 Add an ability to build ClickHouse without NLP functions 2021-07-30 16:30:30 +03:00
Nikita Mikhaylov
3f36a93656 better 2021-07-13 10:50:12 +00:00
Andr0901
4d75450e54 add tests 2021-07-13 10:49:55 +00:00
feng lv
eafe8a2e59 fix 2021-07-11 03:34:57 +00:00
kssenii
1bf9a9f29f Add .cmake 2021-07-09 10:27:53 +00:00
Denis Glazachev
9788b0e38a Fix locating objcopy in macOS
Rework clickhouse_embed_binaries() to compile asm files properly and avoid duplicate symbols when linking in macOS
2021-06-26 17:39:02 +04:00
Benjamin Naecker
f5cf9adc66 Removes unused CMake variable and fixes clang-tidy lint 2021-06-11 14:35:40 -07:00
Benjamin Naecker
c3506bf16d Adds a better way to include binary resources
- Uses a small assembly file to include binary resources, rather than
  objcopy
- Updates `base/common/getResource.cpp` for this new method of inclusion
- Removes linux-only guards in CMake files, as this solution is
  cross-platform.

The resulting binary resources are available in the ClickHouse server
binary on Linux, macOS, and illumos platforms. FreeBSD has not been
tested, but will likely work as well.
2021-06-09 14:03:30 -07:00
Alexey Milovidov
8d85145725 Remove experimental compression codecs 2021-06-06 02:26:52 +03:00
Alexey Milovidov
6f70feed2f Merge branch 'master' into issue-16775 2021-05-24 05:56:57 +03:00
Alexey Milovidov
8d2fa6cf50 Allow to build without experimental compression libraries and remove from fasttest 2021-05-24 01:18:12 +03:00
Maksim Kita
e7f77f27bf
Merge pull request #24030 from kitaisreal/submodule-llvm-project
Added llvm-project submodule
2021-05-23 16:27:56 +03:00
Azat Khuzhin
c704837a4a Switch message level to WARNING for FAIL_ON_UNSUPPORTED_OPTIONS_COMBINATION=OFF
STATUS (as before this patch) is too quite, WARNING will at least log
this with a stacktrace.
2021-05-23 02:32:03 +03:00
Maksim Kita
42e91df363 Updated submodule to llvm12 2021-05-22 15:22:38 +03:00
BoloniniD
33755f1f3d Implemented YAMLParser class 2021-05-21 21:56:22 +03:00
Amos Bird
d22ab2028f
Run check_*_compiler_flag earlier 2021-05-12 12:14:25 +08:00
divanorama
3c2d1d1c17
Don't try GLIBC_COMPATIBILITY for i686 Linux
```
CMake Error at base/glibc-compatibility/CMakeLists.txt:22 (message):
  glibc_compatibility can only be used on x86_64 or aarch64.
```
2021-05-08 14:22:29 +02:00
Alexey Milovidov
d3b4f22e4e Follow-up for #23644 2021-04-28 07:32:23 +03:00
tavplubix
1d5d69f651
Merge pull request #23637 from ClickHouse/fix-build-with-AMQP
Merging #22984
2021-04-26 11:33:52 +03:00
Alexander Tokmakov
b3849beea3 minor fix 2021-04-26 09:45:52 +03:00
Alexey Milovidov
4e48e758ba Always enable asynchronous-unwind-tables 2021-04-25 01:29:48 +03:00
Denis Glazachev
b349e84fc7 Use nanodbc always together with odbc
Disable clickhouse-odbc-bridge building when odbc is disabled
2021-04-20 15:07:05 +04:00
alexey-milovidov
7a2ba9507d
Merge pull request #21431 from danlark1/master
Add function alignment for better performance
2021-04-15 01:38:20 +03:00
kssenii
72d89bc933 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into nanodbc 2021-04-09 11:13:01 +00:00
Alexander Kuzmenkov
f968f6bab6 return prlimit for gcc, it was not its fault 2021-04-06 19:46:24 +03:00
Alexander Kuzmenkov
29cf5bd712 Merge remote-tracking branch 'origin/master' into HEAD 2021-04-06 14:31:19 +03:00
kssenii
38f135ab39 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into nanodbc 2021-04-05 15:37:53 +00:00
mastertheknife
65ca073f42 Allow unbundled xz (lzma) using USE_INTERNAL_XZ_LIBRARY=OFF 2021-04-04 01:05:07 +03:00
kssenii
90db0be8e9 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into nanodbc 2021-04-03 08:01:13 +00:00
Alexander Kuzmenkov
2c91fc55e9 Merge remote-tracking branch 'origin/master' into HEAD 2021-04-02 18:38:05 +03:00
Alexander Kuzmenkov
6f3f4f821a disable prlimit altogether for gcc 2021-04-02 14:00:15 +03:00
Alexander Kuzmenkov
b09e15d430 increase cpu time limit for gcc 2021-04-02 03:09:14 +03:00
Alexander Kuzmenkov
eef57a1a46 increase rlimit for gcc 2021-04-02 01:20:58 +03:00
Alexander Kuzmenkov
a6b6e204b7 more debug 2021-04-01 23:49:21 +03:00
mastertheknife
9b38ed1f92 ppc64le: Fix CMake error about internal CMake variable CMAKE_ASM_COMPILE_OBJECT not set 2021-04-01 19:55:35 +03:00
Kseniia Sumarokova
e3fac9ef32
Merge branch 'master' into nanodbc 2021-04-01 16:38:00 +03:00
Alexander Kuzmenkov
faddd7e815 Merge remote-tracking branch 'origin/master' into HEAD 2021-04-01 14:26:36 +03:00
alexey-milovidov
b224dd1fe1
Update CMakeLists.txt 2021-04-01 07:22:38 +03:00
Alexander Kuzmenkov
a91f505899 remove debug 2021-04-01 00:59:31 +03:00
Alexander Kuzmenkov
a55d03cb62 try to avoid conflict with prlimit 2021-03-31 22:41:53 +03:00
Alexey Milovidov
2f7ac2424d Merge branch 'master' into datasketches-cmake 2021-03-31 08:47:27 +03:00
alexey-milovidov
c71da4a5c8
Update CMakeLists.txt
Co-authored-by: Denis Glazachev <traceon@users.noreply.github.com>
2021-03-29 21:05:00 +03:00
Denis Glazachev
3e68d14ed1 Set C11 standard version consistently (commented out for now) 2021-03-29 14:52:54 +04:00
Denis Glazachev
b84c55794d Set C++20 standard version consistently (based on CMake version, etc.)
Use C++17 when building the bundled cassandra subproject, since it (and rapidjson) is failing to compile with C++20
2021-03-29 14:52:09 +04:00
kssenii
c81ab04e8f Switch to nanodbc 2021-03-22 12:37:05 +00:00
pingyu
83b7ab1fb5 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into datasketches-cmake 2021-03-20 21:15:07 +08:00
Alexey Milovidov
583c78143d Remove useless CMake option 2021-03-14 14:08:08 +03:00
Alexey Milovidov
e8919c49fb Merge branch 'master' into replace-memcpy 2021-03-13 09:39:58 +03:00
Yatsishin Ilya
71d0a50508 add llvm-12 binaries name 2021-03-09 17:24:12 +03:00
Danila Kutenin
bb57161594 Use flags also during linking 2021-03-03 19:52:29 +00:00
Danila Kutenin
739bc438ea Add compression of debug symbols and function alignment for better performance and startup time 2021-03-03 19:41:20 +00:00
Alexey Milovidov
50c62c3b4c Add memcpy implementation from @jart 2021-03-02 22:12:30 +03:00
pingyu
08126030d6 wip #14893 2021-02-26 00:44:01 +08:00
Maksim Kita
7b3481322e Enable clang vtables optimization 2021-02-06 16:42:52 +03:00
Alexey Milovidov
a19e7edd14 Merge branch 'master' into kssenii-pg2ch 2021-01-15 17:33:19 +03:00
Azat Khuzhin
ed26ccf217 Do not run integrity check for cross compiled binaries
Follow-up for: #18811
Refs: #18785
2021-01-08 15:26:35 +03:00
Alexey Milovidov
159891573f Merge branch 'master' into kssenii-pg2ch 2021-01-07 18:39:44 +03:00
Alexey Milovidov
6f481d7512 Add integrity checks for ClickHouse binary 2021-01-07 05:56:57 +03:00
Alexey Milovidov
d99133118d Generate build id when ClickHouse is linked with lld 2021-01-07 04:03:53 +03:00
alexey-milovidov
72b142a00a
Merge branch 'master' into pg2ch 2021-01-06 23:18:59 +03:00
alexey-milovidov
17009ccb98
Update CMakeLists.txt 2021-01-01 18:52:02 +03:00
Amos Bird
829e82c27c
better linker name matcher 2021-01-01 14:39:00 +08:00
alexey-milovidov
195e43de39
Merge pull request #18537 from azat/heavy-builds-fix
Use RLIMIT_DATA/RLIMIT_AS over RLIMIT_RSS for ENABLE_CHECK_HEAVY_BUILDS
2020-12-31 03:24:12 +03:00
alexey-milovidov
3620c8b4d4
Update CMakeLists.txt 2020-12-30 17:49:11 +03:00
kssenii
2d8e35b4bd Add libpq and libpqxx 2020-12-27 12:02:41 +00:00
Azat Khuzhin
d2818278c5 Update ENABLE_CHECK_HEAVY_BUILDS limits for gcc and MSan 2020-12-26 17:26:50 +03:00
Azat Khuzhin
2c649a990b Increase memory limits for ENABLE_CHECK_HEAVY_BUILDS 2020-12-26 14:50:21 +03:00
Azat Khuzhin
7f65351380 Increase memory limits for ENABLE_CHECK_HEAVY_BUILDS 2020-12-26 12:26:42 +03:00
Azat Khuzhin
4bc039bae7 Use RLIMIT_DATA/RLIMIT_AS over RLIMIT_RSS for ENABLE_CHECK_HEAVY_BUILDS
RLIMIT_RSS does not work since 2.6.x+, from getrlimit(2):

       RLIMIT_RSS
              This  is  a  limit (in bytes) on the process's resident set (the number of virtual pages resident in RAM).  This limit has effect only in Linux 2.4.x, x < 30, and there af‐
              fects only calls to madvise(2) specifying MADV_WILLNEED.

Note that before this patch RSS was to 10MB but I doubt that it is
enough for C++ compiler, this patch uses 1G limit for DATA and 10G for
AS/VIRT (but it seems that even 1G may be too small).

And see also https://code.woboq.org/linux/linux/mm/mmap.c.html#may_expand_vm
2020-12-26 10:37:52 +03:00
alesapin
3c104035b1 Add NuRaft library 2020-12-24 23:10:47 +03:00
Azat Khuzhin
995c3da1c3 Disable memory tracking for gcc TSAN/ASAN
Since libtsan.a provides new/delete overrides too:

    ld.lld: error: duplicate symbol: operator new[](unsigned long, std::nothrow_t const&)
    >>> defined at new_delete.cpp:64 (../src/Common/new_delete.cpp:64)
    >>>            new_delete.cpp.o:(operator new[](unsigned long, std::nothrow_t const&)) in archive src/libclickhouse_new_delete.a
    >>> defined at tsan_new_delete.o:(.text+0xE0) in archive /usr/lib/gcc/x86_64-linux-gnu/10/libtsan.a

v2: Fix order of src vs programs for clickhouse_new_delete target detection
2020-12-16 21:31:03 +03:00
Azat Khuzhin
c862ae0c42 Explicitly link with -llib$SANITIZER for gcc
gcc with -nodefaultlibs does not add sanitizers library during linkage
with -static-libasan and similar, fix this, by add them explicitly.

From the gcc(1) about -nodefaultlibs:

    Do not use the standard system libraries when linking. Only the
    libraries you specify are passed to the linker, and options specifying
    linkage of the system libraries, such as -static-libgcc or
    -shared-libgcc, are ignored. The standard startup files are used
    normally, unless -nostartfiles is used.

Plus checked it manually, w/o -nodefaultlibs everything works without
this explicit linkage.

After this patch UBSAN under gcc compiled successfully.

v2: freebsd and darwin
2020-12-16 21:31:03 +03:00
Azat Khuzhin
8e035a7518 build: pass the c++ standard for compiling llvm
Yes clickhosue set gnu++2a globally, but this will not work, since
default -std=c++11 will be added later, look:

    clang++ -std=gnu++2a ... -std=c++11 -Wall -Wextra contrib/llvm/...
2020-12-11 01:32:38 +03:00
Nikita Mikhaylov
80d4af9a73
Merge pull request #17874 from nikitamikhaylov/calendar-date
Merging #17750
2020-12-10 00:19:04 +03:00
PHO
f4204b10ea Fix build with GCC 9.x
Use -std=gnu++2a regardless of whether UNBUNDLED or not, because __int128
is a non-standard builtin and GCC, unlike Clang, only considers it to be
an integral type when GNU extensions are enabled.
2020-12-07 16:00:32 +03:00
Maksim Kita
80d66b8868 FastFloat library integration 2020-12-06 23:37:35 +03:00
Ivan
315ff4f0d9
ANTLR4 Grammar for ClickHouse and new parser (#11298) 2020-12-04 05:15:44 +03:00
Denis Glazachev
0e6dd287e7 Fix CMake generation and build for native Xcode and AppleClang 2020-11-27 20:33:16 +04:00
vdimir
e2fac19686
Remove libbtrie 2020-11-21 21:31:15 +03:00
root
e9de5b6ad4 Add StorageEmbeddedRocksdb Engine 2020-11-11 09:08:52 +08:00
Danila Kutenin
3c6794bf37 Add Floyd-Rivest selection algorithm instead of std::partial_sort 2020-11-09 20:22:05 +03:00
Alexey Milovidov
885bd84720 Remove trash from CMakeLists 2020-10-28 20:48:02 +03:00
alexey-milovidov
1eb8bb19f0
Merge pull request #15608 from danlark1/clang-pass-manager
Use experimental pass manager by default in clang
2020-10-05 18:05:57 +03:00
alesapin
a644512fce Better comment 2020-10-05 12:58:23 +03:00
alesapin
8f41b87737 Better fix 2020-10-05 12:57:28 +03:00
alesapin
3fbbb6bef9 Fix flag 2020-10-05 12:39:03 +03:00
alesapin
5281288bf6 More strict check to add clickhouse_memcpy 2020-10-05 10:23:18 +03:00
Danila Kutenin
a3d27962a7 Add experimental pass manager by default in clang 2020-10-05 09:01:51 +03:00
alesapin
677a7e485f Don't add memcpy for sanitizers builds 2020-10-02 09:57:13 +03:00
Amos Bird
7c9bbe4c29 Neutrialize thinlto's memcpy libcall gen.
(cherry picked from commit 8ffa4d395c)
2020-10-01 22:22:32 +03:00
alesapin
409aaabc2f Revert "Add fno-builtin-memcpy"
This reverts commit 94ab1313e3.
2020-10-01 22:22:14 +03:00
alesapin
94ab1313e3 Add fno-builtin-memcpy 2020-10-01 10:39:27 +03:00
alesapin
38e50d1078 Revert "enable FastMemcpy properly"
This reverts commit 6e23901227.
2020-10-01 10:38:06 +03:00
Amos Bird
6e23901227 enable FastMemcpy properly 2020-09-30 18:52:49 +03:00
Alexey Milovidov
07b931a414 Prepare for LLVM-11 2020-09-28 04:21:40 +03:00
alesapin
269d225637 Merge branch 'master' into myrrc-feature-cmake-flags-doc-generator 2020-09-22 17:00:02 +03:00
Alexey Milovidov
5301de7656 Control heavy translation units 2020-09-20 23:43:28 +03:00
myrrc
07317644eb added explicit tests disabled status 2020-09-19 21:05:40 +03:00
myrrc
c78d9f9f38 moved the generators to docs/ folder 2020-09-19 19:42:36 +03:00
Alexey Milovidov
059646743b Remove OpenCL 2020-09-19 17:20:00 +03:00
myrrc
ac606dca77 updated cmake/ files, added some comments 2020-09-17 18:37:23 +03:00
myrrc
acff0feb58 slighly updated CMake files 2020-09-17 18:09:59 +03:00
myrrc
b3d236a535 few description fixes 2020-09-16 12:42:55 +03:00
myrrc
42b22c3424 fixed handling of conditional options 2020-09-16 00:35:06 +03:00
myrrc
dc94a754dd minor bugs fixed, slightly modified main cmake 2020-09-15 23:17:24 +03:00
myrrc
bd1a7c69ba rewrote code from bash to python 2020-09-15 22:32:42 +03:00
Konstantin Podshumok
e296997b6c
cmake: fix potential curl linking problems
Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:44 +03:00
Konstantin Podshumok
5097793872
cmake: Fix odbc in unbudled
Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:43 +03:00
Konstantin Podshumok
d989e59699
unbundled: link with termcap when using static llvm
ld.lld: error: undefined symbol: setupterm
referenced by Process.cpp.o:(llvm::sys::Process::FileDescriptorHasColors(int)) in archive /usr/lib/llvm-9/lib/libLLVMSupport.a

Squashed:
- fixup termcap + external llvm

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:42 +03:00
Konstantin Podshumok
d739c6a38f
Revert "Merge pull request #13689 from ClickHouse/remove-termcap"
This reverts commit da8d8f35dd, reversing
changes made to c3d0a87b8b.
2020-08-25 20:16:42 +03:00
Konstantin Podshumok
cc6a59d59b
cmake: disable internal ORC when using external Parquet
Squashed:
- fix internal poco linking with `zlib`

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:42 +03:00
Konstantin Podshumok
e101db600c
cmake: set USE_INTERNAL_SPARSEHASH_LIBRARY=ON by default
as we don't know any distribution with sparsehash-c11 package

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:40 +03:00
Konstantin Podshumok
1913522233
cmake: always use internal poco library as it went too far from upstream
Squashed:
- cmake: move USE_INTERNAL_POCO_LIBRARY option to separate file
- point contrib/poco to "add <atomic> to TCPServerDispatcher"

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:38 +03:00
Konstantin Podshumok
2fc37bd694
cmake: enable FAIL_ON_UNSUPPORTED_OPTIONS_COMBINATION by default
Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:38 +03:00
Konstantin Podshumok
ad23bf46b6
cmake: message when ThinLTO is enabled without clang
Squashed:
- ENABLE_THINLTO shouldn't be enabled by default when tests or sanitizers are enabled

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:38 +03:00
Konstantin Podshumok
d456aa86ef
Revert "Revert "cmake: Add option to fail configuration instead of auto-reconfiguration""
This reverts commit 89419ceb9b
(curl part moved to separate commit)

Squashed:
- termcap removed
- fix for cassandra on apple merged
- cmake: fix "Can't find system zlib library" in unbundled build
- cmake: fix condition when testing for rdkafka platform
- cmake: PROTOBUF_OLD_ABI_COMPAT shouldn't be enabled for internal protobuf

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-25 20:16:37 +03:00
alexey-milovidov
fb0e68f808
Merge pull request #12771 from arenadata/ADQM-109
krb5 + cyrus-sasl + kerberized kafka
2020-08-20 20:13:01 +03:00
Azat Khuzhin
4e003dc908 Use gnu++2a instead of c++2a for unbundled build to fix numeric_limits<__int128> 2020-08-19 21:08:04 +03:00
Alexey Milovidov
ad20a384c1 Remove useless code 2020-08-14 02:55:10 +03:00
alexey-milovidov
89419ceb9b
Revert "cmake: Add option to fail configuration instead of auto-reconfiguration" 2020-08-13 23:10:06 +03:00
alexey-milovidov
6afbcfe914
Merge pull request #13528 from ClickHouse/clickhouse-install
Simple clickhouse install script
2020-08-11 18:08:22 +03:00
Alexey Milovidov
c7a6a18a75 Preparation to enable clickhouse install on Mac and FreeBSD 2020-08-10 02:58:09 +03:00
Konstantin Podshumok
fe56697893 cmake: Add option to fail configuration instead of auto-reconfiguration
squashed:
find/msgpack.cmake - merge collision fix, trivial

Signed-off-by: Konstantin Podshumok <kpp.live+signed@gmail.com>
2020-08-09 21:37:26 +03:00
Alexey Milovidov
8d616444e4 Support for AArch64 2020-08-09 02:54:38 +03:00
Alexey Milovidov
182e2929f3 Merge branch 'master' into embed-configs 2020-08-09 02:41:44 +03:00
Alexey Milovidov
0f79eb3cc5 Embed configs into binary 2020-08-08 06:42:42 +03:00
Konstantin Podshumok
f6da5d58d0
Don't enable march=native on arm by default 2020-08-08 05:29:55 +03:00
Konstantin Podshumok
df79f415ce
Allow -march=native with clang 2020-08-08 00:28:10 +03:00
Ilya Golshtein
d93f0c7548 initial - kerberized kafka works 2020-07-31 13:49:07 +03:00
alesapin
cbac8bd083 Fix cmake lists 2020-07-29 14:33:38 +03:00
Alexander Kuzmenkov
3e6b9f297f Some provisions for Android build 2020-07-15 14:16:00 +03:00
Azat Khuzhin
3ceefee220 Warn if jemalloc is not enabled for non-linux too
Refs: #11897 (osx)
Refs: #11774 (freebsd)
2020-07-09 10:25:42 +03:00
Azat Khuzhin
3a519fe35a Fix jemalloc enabled detection (should goes after contrib inclusion) 2020-07-09 10:25:13 +03:00
Azat Khuzhin
a645759a42 Set CMAKE_POLICY_DEFAULT_CMP0022/CMAKE_POLICY_DEFAULT_CMP0077 globally
This will fix CMAKE_POLICY_DEFAULT_CMP0077 for snappy:

    CMake Warning (dev) at contrib/snappy/CMakeLists.txt:11 (option):
      Policy CMP0077 is not set: option() honors normal variables.  Run
    "cmake
      --help-policy CMP0077" for policy details.  Use the cmake_policy
    command to
      set the policy and suppress this warning.

      For compatibility with older versions of CMake, option is clearing the
      normal variable 'BUILD_SHARED_LIBS'.
    This warning is for project developers.  Use -Wno-dev to suppress it.
2020-07-09 10:16:39 +03:00
Azat Khuzhin
a5cb0aed12
Sanitize LINK_LIBRARIES property for the directories (#12160)
When you will try to link target with the directory (that exists), cmake will
skip this without an error, only the following warning will be reported:

    target_link_libraries(main /tmp)

    WARNING: Target "main" requests linking to directory "/tmp".  Targets may link only to libraries.  CMake is dropping the item.

And there is no cmake policy that controls this.
(I guess the reason that it is allowed is because of FRAMEWORK for OSX).

So to avoid error-prone cmake rules, this can be sanitized.
There are the following ways:
- overwrite target_link_libraries()/link_libraries() and check *before*
  calling real macro, but this requires duplicate all supported syntax
  -- too complex
- overwrite target_link_libraries() and check LINK_LIBRARIES property, this
  works great
  -- but cannot be used with link_libraries()
- use BUILDSYSTEM_TARGETS property to get list of all targets and sanitize
  -- this will work.

I also tested it with the following patch:

    $ git di
    diff --git a/base/daemon/CMakeLists.txt b/base/daemon/CMakeLists.txt
    index 26d59a57e7..35e6ff6432 100644
    --- a/base/daemon/CMakeLists.txt
    +++ b/base/daemon/CMakeLists.txt
    @@ -9,4 +9,5 @@ target_link_libraries (daemon PUBLIC loggers PRIVATE clickhouse_common_io clickh

     if (USE_SENTRY)
         target_link_libraries (daemon PRIVATE ${SENTRY_LIBRARY})
    +    target_link_libraries (daemon PRIVATE /tmp)
     endif ()

And it works:

    CMake Error at cmake/sanitize_target_link_libraries.cmake:48 (message):
       daemon requested to link with directory: /tmp
    Call Stack (most recent call first):
      cmake/sanitize_target_link_libraries.cmake:55 (sanitize_link_libraries)
      CMakeLists.txt:425 (include)

Refs: #12041
2020-07-07 19:22:41 +03:00
alesapin
64583ceb22 Merge branch 'master' into add-storage-rabbitmq-read-only 2020-07-02 16:08:29 +03:00
kssenii
3d2cc9d4b2 Remove libevent library 2020-06-29 12:11:17 +00:00
alexey-milovidov
a34032cace
Merge pull request #11300 from blinkov/sentry
Opt-in support for sending crash reports
2020-06-25 17:20:50 +03:00
alesapin
3fc65b3269 Merge branch 'master' into kssenii-rabbit-mq 2020-06-24 20:14:28 +03:00
Alexey Milovidov
f206d91072 Allow ClickHouse to run on Android 2020-06-23 20:58:42 +03:00
kssenii
18820814f5 Merge 2020-06-10 23:25:33 +00:00
Ivan Blinkov
90ee4d52f4 merge master 2020-06-10 13:18:41 +03:00
Alexander Tokmakov
6bb68329f8 Merge branch 'master' into merging_external_source_cassandra 2020-06-09 19:51:14 +03:00
Ivan Blinkov
6f7064928f Merge branch 'master' of github.com:ClickHouse/ClickHouse into sentry 2020-06-09 19:07:57 +03:00
Ivan
47ad338cb2
Refactor CMake build files (#11390)
* Get rid of lib_name.cmake
* Refactor Boost and HyperScan libraries
* Refactor lz4
* Fix build with xxHash
2020-06-09 13:54:49 +03:00
Alexander Tokmakov
e67837bc4a cleenup 2020-06-04 00:11:17 +03:00
Ivan Blinkov
709b4f42c8 Prototype sending crash reports on segfaults 2020-05-27 22:11:04 +03:00
Alexander Tokmakov
e6ca09e134 fix build 2020-05-22 17:19:33 +03:00
Alexander Tokmakov
31b6f5f0d2 Merge branch 'master' into merging_external_source_cassandra 2020-05-20 23:44:53 +03:00
kssenii
a055e33087 Add libevent & AMQP-CPP libraries 2020-05-20 09:08:27 +03:00
Alexander Tokmakov
175b7aedf3 Merge branch 'master' into merging_external_source_cassandra 2020-05-19 05:21:27 +03:00
Artem Zuikov
97c7447130
Bitonic sort improvements (#10934) 2020-05-19 00:41:23 +03:00
alexey-milovidov
5898f611da Merge pull request #10861 from traceon/contrib-openldap
Add OpenLDAP third-party library integration (system or contrib/build)
2020-05-15 23:13:23 +03:00
Artem Zuikov
8e8a2a17d6 build fixes 2020-05-15 03:01:31 +03:00
Ri
fc7afaa639
Bitonic sort on GPU (OpenCL) (#10232) 2020-05-15 03:01:14 +03:00
Denis Glazachev
36cb24377b Merge branch 'master' into contrib-openldap
* master: (204 commits)
  DOCS-289: randConstant (#10838)
  Update performance_comparison.md
  fix docs build
  Adjust ld+json images, remove feather icons (#10843)
  [docs] faster local/debug build (#10840)
  CLICKHOUSE-4862: some markdown fixes @ ru mergetree.md (#10835)
  CLICKHOUSE-4862: fix link (#10836)
  Some fixes at ru merge-tree-settings.md (#10837)
  Fix MSan failure in cache dictionary
  Fix double whitespace
  Additional assert in ColumnVector
  Fix paths in compiler error messages #10434
  Fix "Arcadia" build
  Fix style check in Block::sortColumns() (sigh)
  Sort iterators to avoid extra std::string creation in Block::sortColumns()
  Optimize Block::sortColumns()
  Better DNS exception message
  Fix logical error in convertFieldToType
  Make order of columns strict in Block::sortColumns()
  Add a test for INSERT into Buffer() with different order of columns (via MV)
  ...
2020-05-13 00:29:09 +04:00
Denis Glazachev
acd8cfc5d2 Added contrib/openldap submodule
Added OpenLDAP find/detection cmake scripts
Added integration for OpenLDAP Linux and Darwin x86_64 platforms (following OpenSSL integration approach)
2020-05-12 23:19:15 +04:00
Alexey Milovidov
2dd1a1d7b4 Fix paths in compiler error messages #10434 2020-05-12 05:12:08 +03:00
Alexey Milovidov
a576a4fbcd Enable extra warnings for base, utils, programs 2020-05-10 01:59:34 +03:00
Alexey Milovidov
fb32dbe6ee Enable more warnings 2020-05-10 00:44:33 +03:00
Amos Bird
e33fb54686
Fix libunwind 2020-05-09 05:44:57 +08:00
Ivan
85d783c247
Poco contrib refactoring (#10396)
* Remove config_common.h
* Refactor libcpuid contrib
* Remove support for libcpuinfo
* Define USE_CPUID in Arcadia
* Refactor Poco libraries
2020-05-08 17:11:19 +03:00
alexey-milovidov
e908d1cd01
Revert "Partial fix of clang build stack unwinding (omit-frame-pointer)" 2020-05-05 14:36:32 +03:00
alexey-milovidov
aeb5487261
Merge branch 'master' into xcode-build-fix 2020-05-03 05:03:49 +03:00