server-skynet-source-3rd-je.../include/jemalloc
Dave Watson ed84764a2a Support static linking of jemalloc with glibc
glibc defines its malloc implementation with several weak and strong
symbols:

strong_alias (__libc_calloc, __calloc) weak_alias (__libc_calloc, calloc)
strong_alias (__libc_free, __cfree) weak_alias (__libc_free, cfree)
strong_alias (__libc_free, __free) strong_alias (__libc_free, free)
strong_alias (__libc_malloc, __malloc) strong_alias (__libc_malloc, malloc)

The issue is not with the weak symbols, but that other parts of glibc
depend on __libc_malloc explicitly.  Defining them in terms of jemalloc
API's allows the linker to drop glibc's malloc.o completely from the link,
and static linking no longer results in symbol collisions.

Another wrinkle: jemalloc during initialization calls sysconf to
get the number of CPU's.  GLIBC allocates for the first time before
setting up isspace (and other related) tables, which are used by
sysconf.  Instead, use the pthread API to get the number of
CPUs with GLIBC, which seems to work.

This resolves #442.
2016-10-28 15:10:19 -07:00
..
internal Support static linking of jemalloc with glibc 2016-10-28 15:10:19 -07:00
jemalloc_defs.h.in Detect LG_SIZEOF_PTR depending on MSVC platform target 2016-02-20 10:50:24 -08:00
jemalloc_macros.h.in Add (size_t) casts to MALLOCX_ALIGN(). 2016-03-11 10:11:56 -08:00
jemalloc_mangle.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
jemalloc_protos.h.in Add JEMALLOC_CXX_THROW to the memalign() function prototype. 2015-08-26 13:47:20 -07:00
jemalloc_rename.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
jemalloc_typedefs.h.in Implement chunk hook support for page run commit/decommit. 2015-08-07 00:50:58 -07:00
jemalloc.sh Remove extraneous ';' on closing 'extern "C"' 2015-07-16 11:37:19 +01:00