Boris Kuschel
dff5d78126
Add jemalloc support
2023-07-14 10:13:36 -04:00
Azat Khuzhin
a10aa9ad50
Force libunwind usage (removes gcc_eh support)
...
libunwind is reentrant and signal safe, and works faster then then
gcc_eh (plus it has some custom patches for problems that have been
found during it's usage in ClickHouse).
gcc_eh may be missing in the system (if gcc was not installed), and
even if it exists clickhouse uses -nodefaultlibs, so some care should be
made to make it work.
Also this library is tiny and there shouln't be any problem to require
it always (there is already tendency to require some contrib libraries,
i.e. poco).
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-08 20:55:50 +02:00
Michael Kolupaev
10d597676c
Refactor IColumn::forEachSubcolumn to make it slightly harder to implement incorrectly
2023-06-16 11:08:12 -07:00
Alexey Milovidov
9a48cf0da8
Merge pull request #40422 from pkubaj/patch-1
...
Add FreeBSD/powerpc64le support
2022-12-11 09:38:04 +03:00
Azat Khuzhin
95b3a02779
Fix strerror_r() configuration for jemalloc with musl under clang-15
...
Build error [1]:
Sep 06 18:40:53 FAILED: contrib/jemalloc-cmake/CMakeFiles/_jemalloc.dir/__/jemalloc/src/malloc_io.c.o
Sep 06 18:40:53 /usr/bin/ccache /usr/bin/clang-15 --target=x86_64-linux-musl --sysroot=/build/cmake/linux/../../contrib/sysroot/linux-x86_64-musl -DHAS_RESERVED_IDENTIFIER -DJEMALLOC_NO_PRIVATE_NAMESPACE -DJEMALLOC_PROF=1 -DJEMALLOC_PROF_LIBGCC=1 -DSTD_EXCEPTION_HAS_STACK_TRACE=1 -DUSE_MUSL=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -D_LIBCPP_HAS_MUSL_LIBC=1 -I../contrib/jemalloc/include -isystem ../contrib/jemalloc-cmake/include -isystem contrib/jemalloc-cmake/include_linux_x86_64_musl/jemalloc/internal -isystem ../contrib/libcxx/include -isystem ../contrib/libcxxabi/include -isystem ../contrib/libunwind/include --gcc-toolchain=/build/cmake/linux/../../contrib/sysroot/linux-x86_64-musl --gcc-toolchain=/build/cmake/linux/../../contrib/sysroot/linux-x86_64-musl -fdiagnostics-color=always -Xclang -fuse-ctor-homing -gdwarf-aranges -pipe -mssse3 -msse4.1 -msse4.2 -mpclmul -mpopcnt -fasynchronous-unwind-tables -ffile-prefix-map=/build=. -falign-functions=32 -mbranches-within-32B-boundaries -fdiagnostics-absolute-paths -fexperimental-new-pass-manager -w -O2 -g -DNDEBUG -O3 -g -gdwarf-4 -flto=thin -fwhole-program-vtables -fno-pie -D OS_LINUX -D_GNU_SOURCE -Werror -std=gnu11 -MD -MT contrib/jemalloc-cmake/CMakeFiles/_jemalloc.dir/__/jemalloc/src/malloc_io.c.o -MF contrib/jemalloc-cmake/CMakeFiles/_jemalloc.dir/__/jemalloc/src/malloc_io.c.o.d -o contrib/jemalloc-cmake/CMakeFiles/_jemalloc.dir/__/jemalloc/src/malloc_io.c.o -c ../contrib/jemalloc/src/malloc_io.c
Sep 06 18:40:53 /build/contrib/jemalloc/src/malloc_io.c💯 8: error: incompatible integer to pointer conversion initializing 'char *' with an expression of type 'int' [-Wint-conversion]
Sep 06 18:40:53 char *b = strerror_r(err, buf, buflen);
Sep 06 18:40:53 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sep 06 18:40:53 1 error generated.
[1]: https://s3.amazonaws.com/clickhouse-builds/41046/0e9265ad951d40cdce3716fb8a679360b2e0c156/package_release/build_log.log
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-09-10 21:38:35 +02:00
pkubaj
17f757a94c
Add FreeBSD/powerpc64le support
2022-08-19 21:41:03 +02:00
Azat Khuzhin
1f049e8bac
Bump jemalloc to fix possible assertion
...
This patch also updates the jemalloc version.
Note, that I've enabled page_id for jemalloc
PR_SET_VMA/PR_SET_VMA_ANON_NAME, that requires linux 5.17+ (but ignores
EINVAL anyway).
v2: add -isystem to fix reserved name for JEMALLOC_OVERRIDE___LIBC_PVALLOC
Refs: https://github.com/jemalloc/jemalloc/pull/2304
Refs: https://github.com/ClickHouse/ClickHouse/issues/31531
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-07-12 07:57:27 +03:00
Robert Schulze
933f98a900
Removed warning flags in contribs
...
warnings are disabled for all contribs in contrib/CMakeLists.txt already
2022-06-01 11:02:39 +02:00
Alexey Milovidov
dd2b2380fa
Add a comment #37078
2022-05-24 04:22:51 +02:00
mergify[bot]
cc1362511a
Merge branch 'master' into patch-2
2022-05-23 00:12:44 +00:00
Robert Schulze
eb9f11da3d
Replace variable ARCH_ARM by ARCH_AARCH64
...
Both are equivalent and removing the duplication was a leftover of PR #36614
2022-05-15 09:48:02 +02:00
Yuriy Chernyshov
6d28b22687
Fix jemalloc compatibility with LLVM libunwind
...
jemalloc provides support for two different libunwind flavors: the original HP libunwind and the one coming with gcc / g++ / libstdc++.
The latter is identified by `JEMALLOC_PROF_LIBGCC` and provides `_Unwind_Backtrace` method instead of `unw_backtrace`.
At the time ClickHouse uses LLVM libunwind which follows libgcc's way of backtracing.
ClickHouse has to provide `unw_backtrace` method by the means of [commit 8e2b31e](8e2b31e766
).
While this PR does not allow complete remove of the patch (as ClickHouse itself uses unw_backtrace directly), it definitely sorts the things out.
2022-05-10 16:14:59 +03:00
alesapin
ffca5c3cdc
Merge branch 'master' into musl-check
2022-04-19 17:51:54 +02:00
Azat Khuzhin
91979cdd17
jemalloc: enable logging in debug build
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-04-18 23:06:41 +03:00
alesapin
f011864386
Build clickhouse-keeper with musl
2022-04-12 18:48:16 +02:00
zhanghuajie
53a8987b3b
fix build fail with gcc --fix warnings without disabling some parameters
2022-03-11 21:59:19 +08:00
Azat Khuzhin
01583ba10e
jemalloc: fix includes order to avoid overlaps
...
If you had jemalloc build in contrib/jemalloc, and not current version
but some outdated, then compiler will pick incorrect file and may fail.
Also SYSTEM should be removed since regular -I is in the different list,
and will be checked before -isystem.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-21 08:32:45 +03:00
Azat Khuzhin
5a8cf3ac98
jemalloc: update version (to 5.3-rc) and commit SHA1
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:30:55 +03:00
Azat Khuzhin
c045a95a37
jemalloc: update provisioned headers for freebsd aarch64
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
d3b60c011c
jemalloc: update provisioned headers for freebsd x86_64
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
04be7a5809
jemalloc: update provisioned headers for darwin aarch64
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
ac31c648ab
jemalloc: update provisioned headers for darwin x86_64
...
Generated on osx 10.14
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
054e84c382
jemalloc: add a note about JEMALLOC_PREFIX
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
4d3c4c7c8c
jemalloc: update provisioned headers for linux aarch64
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
ddcf0f96e8
jemalloc: update provisioned headers for linux ppc64le
...
v2: define JEMALLOC_DEFINE_MADVISE_FREE
https://s3.amazonaws.com/clickhouse-builds/33057/6482a1c48f22d80f704bf869857091045a3f6917/binary_ppc64le/build_log.log
v3: fix pthread_atfork
https://github.com/ClickHouse/ClickHouse/runs/5128801105?check_suite_focus=true
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
f
2022-02-17 21:25:58 +03:00
Azat Khuzhin
bd5137db15
jemalloc: update provisioned headers for linux riscv64
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
bc5aeb4dcf
jemalloc: add a note about musl support
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
daa292cf5a
jemalloc: remove README for linux x86_64
...
Note, that there is no need to disable JEMALLOC_PURGE_MADVISE_FREE,
since jemalloc does check in runtime, and ClickHouse already
successfully works w/o this change.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
1a98c1aace
jemalloc: move JEMALLOC_HAVE_ATTR_FORMAT_GNU_PRINTF out from per-arch
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
e962649899
jemalloc: correctly disable JEMALLOC_HAVE_ATTR_FORMAT_GNU_PRINTF
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
560f813c46
jemalloc: cleanup README for linux x86_64
...
- remove GNU_SOURCE it is done in common CMakeLists.txt
- remove JEMALLOC_OVERRIDE___POSIX_MEMALIGN (there is no need to since
__posix_memalign() does not exists in linux)
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
be4d95e444
jemalloc: remove superfluous READMEs
...
Those were just copied from include_linux_x86_64, and replaced x86_64
with the arch.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
bc183223c5
jemalloc: update provisioned headers for linux x86_64
...
v2: update jemalloc
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
0c73b860e5
jemalloc: update generic headers
...
v2: update jemalloc one more time
v3:
- do not include jemalloc_mangle*.h
- do not change jemalloc.h
- fix for JEMALLOC_NOTHROW/JEMALLOC_SYS_NOTHROW
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
569d613326
jemalloc: update cmake rules
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-17 21:25:58 +03:00
Azat Khuzhin
eba636613a
contrib/jemalloc: use hidden library
...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-01-21 10:11:22 +03:00
Azat Khuzhin
a6d482d3e1
Cleanup jemalloc contrib
2022-01-20 10:02:03 +03:00
Azat Khuzhin
4709ff9340
More generic check for CMAKE_BUILD_TYPE in jemalloc
2021-12-04 09:19:34 +03:00
Vladimir Smirnov
48451182f8
Initial support for risc-v
...
Make ClickHouse compilable and runnable on risc-v 64
So far only basic functionality was tested (on real hw),
clickhouse server runs, exceptions works, client works,
simple tests works.
What doesn't work:
1. traces - they are always empty
2. system.stack_trace only have first frame
2021-11-11 19:23:34 +01:00
Alexey Milovidov
41acc52458
Preparation to build with Musl
2021-10-16 00:17:34 +03:00
Alexey Milovidov
d4e496c314
Add support for PowerPC build
2021-10-12 01:47:57 +03:00
mikael
714ac8efc4
FreeBSD aarch64 doesn't implement sbrk
2021-10-10 14:52:42 +02: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
342c3fae3a
Revert "Disable jemalloc under OSX" (only jemalloc hunk)
...
This reverts commit f062aa8574
.
2021-08-18 09:47:59 +03:00
Raúl Marín
f062aa8574
Disable jemalloc under OSX
2021-08-16 18:04:46 +02:00
sdk2
717f7ed01b
Update contrib/jemalloc-cmake/CMakeLists.txt
2021-06-07 16:38:24 +08:00
Alexey Milovidov
4ff812db7f
Maybe better support for paths with whitespaces
2021-04-24 22:47:52 +03:00
Maksim Kita
4be441c6d5
Merge branch 'master' into support-apple-m1
2021-04-16 23:33:12 +03:00
Azat Khuzhin
29281ea6e0
jemalloc: set muzzy_decay_ms/dirty_decay_ms to 5s
2021-04-16 10:54:11 +03:00
Azat Khuzhin
da6dc64e04
jemalloc: set dirty_decay_ms/muzzy_decay_ms to 1 second
2021-04-15 00:34:46 +03:00