In case of OSX jemalloc register itself as a default zone allocator.
But when you link statically then zone_register() will not be called,
and even will be optimized out:
$ nm clickhouse.patched | grep -c zone_register
0
Fix this, by manually calling it.
v2: extern C
Right now it aborts (Abort trap: 6) on osx, the issue does not looks
like [1], but should be investigated, so disable for now.
What is interesting that it works under debugger, so I guess it is
indeed the order of symbol replacements...
[1]: https://github.com/jemalloc/jemalloc/issues/420
And since it does not supported it produces the following warning:
<jemalloc>: No getcpu support: percpu_arena:percpu
<jemalloc>: perCPU arena getcpu() not available. Setting narenas to 8.
However it is uses narenas=ncpu instead of default narenas=ncpu*4
This patch can go upstream, regardless of the jemalloc update
eventually.
Also I noticed that header with jemalloc version differs (someone forgot
to update?)
* Fix shared build
* Major default libs refactor
* Fix build with gcc_eh
* Link all libraries as a big group.
* Use global interface library as a group
* Build capnproto using our cmake
* Use only internal libunwind
* Added jemalloc as submodule [#CLICKHOUSE-2]
* Imported jemalloc-cmake [#CLICKHOUSE-2]
* Added README for jemalloc-cmake [#CLICKHOUSE-2]
* Trying to add jemalloc [#CLICKHOUSE-2]
* Trying to add jemalloc [#CLICKHOUSE-2]
* Trying to add jemalloc [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]
* Add support for jemalloc: development [#CLICKHOUSE-2]