diff --git a/.gitignore b/.gitignore index d6fa8fd1..32b4c424 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,23 @@ -/jemalloc/autom4te.cache/ -/jemalloc/config.stamp -/jemalloc/config.log -/jemalloc/config.status -/jemalloc/configure -/jemalloc/doc/html.xsl -/jemalloc/doc/manpages.xsl -/jemalloc/doc/jemalloc.xml -/jemalloc/doc/jemalloc.html -/jemalloc/doc/jemalloc.3 -/jemalloc/lib/ -/jemalloc/Makefile -/jemalloc/include/jemalloc/internal/jemalloc_internal\.h -/jemalloc/include/jemalloc/jemalloc\.h -/jemalloc/include/jemalloc/jemalloc_defs\.h -/jemalloc/test/jemalloc_test\.h -/jemalloc/src/*.[od] -/jemalloc/test/*.[od] -/jemalloc/test/*.out -/jemalloc/test/[a-z]* -!/jemalloc/test/*.c -!/jemalloc/test/*.exp -/jemalloc/VERSION +/autom4te.cache/ +/config.stamp +/config.log +/config.status +/configure +/doc/html.xsl +/doc/manpages.xsl +/doc/jemalloc.xml +/doc/jemalloc.html +/doc/jemalloc.3 +/lib/ +/Makefile +/include/jemalloc/internal/jemalloc_internal\.h +/include/jemalloc/jemalloc\.h +/include/jemalloc/jemalloc_defs\.h +/test/jemalloc_test\.h +/src/*.[od] +/test/*.[od] +/test/*.out +/test/[a-z]* +!test/*.c +!test/*.exp +/VERSION diff --git a/jemalloc/COPYING b/COPYING similarity index 100% rename from jemalloc/COPYING rename to COPYING diff --git a/jemalloc/ChangeLog b/ChangeLog similarity index 96% rename from jemalloc/ChangeLog rename to ChangeLog index 7b262c95..fd9ee545 100644 --- a/jemalloc/ChangeLog +++ b/ChangeLog @@ -6,6 +6,14 @@ found in the git revision history: http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git git://canonware.com/jemalloc.git +* 2.2.2 (July 30, 2011) + + Bug fixes: + - Fix a build error for --disable-tcache. + - Fix assertions in arena_purge() (for real this time). + - Add the --with-private-namespace option. This is a workaround for symbol + conflicts that can inadvertently arise when using static libraries. + * 2.2.1 (March 30, 2011) Bug fixes: diff --git a/jemalloc/INSTALL b/INSTALL similarity index 96% rename from jemalloc/INSTALL rename to INSTALL index 11a457ae..2a1e469c 100644 --- a/jemalloc/INSTALL +++ b/INSTALL @@ -42,6 +42,12 @@ any of the following arguments (not a definitive list) to 'configure': jemalloc overlays the default malloc zone, but makes no attempt to actually replace the "malloc", "calloc", etc. symbols. +--with-private-namespace= + Prefix all library-private APIs with . For shared libraries, + symbol visibility mechanisms prevent these symbols from being exported, but + for static libraries, naming collisions are a real possibility. By + default, the prefix is "" (empty string). + --with-install-suffix= Append to the base name of all installed files, such that multiple versions of jemalloc can coexist in the same installation directory. For diff --git a/jemalloc/Makefile.in b/Makefile.in similarity index 98% rename from jemalloc/Makefile.in rename to Makefile.in index 26da0e28..de7492f9 100644 --- a/jemalloc/Makefile.in +++ b/Makefile.in @@ -136,9 +136,9 @@ doc: $(DOCS) @objroot@lib/libjemalloc@install_suffix@.$(SO) @mkdir -p $(@D) ifneq (@RPATH@, ) - $(CC) -o $@ $< @RPATH@@objroot@lib -L@objroot@lib -ljemalloc@install_suffix@ + $(CC) -o $@ $< @RPATH@@objroot@lib -L@objroot@lib -ljemalloc@install_suffix@ -lpthread else - $(CC) -o $@ $< -L@objroot@lib -ljemalloc@install_suffix@ + $(CC) -o $@ $< -L@objroot@lib -ljemalloc@install_suffix@ -lpthread endif install_bin: diff --git a/jemalloc/README b/README similarity index 100% rename from jemalloc/README rename to README diff --git a/jemalloc/autogen.sh b/autogen.sh similarity index 100% rename from jemalloc/autogen.sh rename to autogen.sh diff --git a/jemalloc/bin/pprof b/bin/pprof similarity index 100% rename from jemalloc/bin/pprof rename to bin/pprof diff --git a/jemalloc/config.guess b/config.guess similarity index 100% rename from jemalloc/config.guess rename to config.guess diff --git a/jemalloc/config.stamp.in b/config.stamp.in similarity index 100% rename from jemalloc/config.stamp.in rename to config.stamp.in diff --git a/jemalloc/config.sub b/config.sub similarity index 100% rename from jemalloc/config.sub rename to config.sub diff --git a/jemalloc/configure.ac b/configure.ac similarity index 96% rename from jemalloc/configure.ac rename to configure.ac index 412d3d1b..b58aa520 100644 --- a/jemalloc/configure.ac +++ b/configure.ac @@ -292,13 +292,22 @@ if test "x$JEMALLOC_PREFIX" != "x" ; then JEMALLOC_CPREFIX=`echo ${JEMALLOC_PREFIX} | tr "a-z" "A-Z"` AC_DEFINE_UNQUOTED([JEMALLOC_PREFIX], ["$JEMALLOC_PREFIX"]) AC_DEFINE_UNQUOTED([JEMALLOC_CPREFIX], ["$JEMALLOC_CPREFIX"]) - jemalloc_prefix="$JEMALLOC_PREFIX" - jemalloc_cprefix="$JEMALLOC_CPREFIX" - AC_SUBST([jemalloc_prefix]) - AC_SUBST([jemalloc_cprefix]) AC_DEFINE_UNQUOTED([JEMALLOC_P(string_that_no_one_should_want_to_use_as_a_jemalloc_API_prefix)], [${JEMALLOC_PREFIX}##string_that_no_one_should_want_to_use_as_a_jemalloc_API_prefix]) fi +dnl Do not mangle library-private APIs by default. +AC_ARG_WITH([private_namespace], + [AS_HELP_STRING([--with-private-namespace=], [Prefix to prepend to all library-private APIs])], + [JEMALLOC_PRIVATE_NAMESPACE="$with_private_namespace"], + [JEMALLOC_PRIVATE_NAMESPACE=""] +) +AC_DEFINE_UNQUOTED([JEMALLOC_PRIVATE_NAMESPACE], ["$JEMALLOC_PRIVATE_NAMESPACE"]) +if test "x$JEMALLOC_PRIVATE_NAMESPACE" != "x" ; then + AC_DEFINE_UNQUOTED([JEMALLOC_N(string_that_no_one_should_want_to_use_as_a_jemalloc_private_namespace_prefix)], [${JEMALLOC_PRIVATE_NAMESPACE}##string_that_no_one_should_want_to_use_as_a_jemalloc_private_namespace_prefix]) +else + AC_DEFINE_UNQUOTED([JEMALLOC_N(string_that_no_one_should_want_to_use_as_a_jemalloc_private_namespace_prefix)], [string_that_no_one_should_want_to_use_as_a_jemalloc_private_namespace_prefix]) +fi + dnl Do not add suffix to installed files by default. AC_ARG_WITH([install_suffix], [AS_HELP_STRING([--with-install-suffix=], [Suffix to append to all installed files])], @@ -688,7 +697,7 @@ dnl jemalloc configuration. dnl dnl Set VERSION if source directory has an embedded git repository. -if test -d "${srcroot}../.git" ; then +if test -d "${srcroot}.git" ; then git describe --long --abbrev=40 > ${srcroot}VERSION fi jemalloc_version=`cat ${srcroot}VERSION` @@ -905,6 +914,8 @@ AC_MSG_RESULT([objroot : ${objroot}]) AC_MSG_RESULT([abs_objroot : ${abs_objroot}]) AC_MSG_RESULT([]) AC_MSG_RESULT([JEMALLOC_PREFIX : ${JEMALLOC_PREFIX}]) +AC_MSG_RESULT([JEMALLOC_PRIVATE_NAMESPACE]) +AC_MSG_RESULT([ : ${JEMALLOC_PRIVATE_NAMESPACE}]) AC_MSG_RESULT([install_suffix : ${install_suffix}]) AC_MSG_RESULT([autogen : ${enable_autogen}]) AC_MSG_RESULT([cc-silence : ${enable_cc_silence}]) diff --git a/jemalloc/doc/html.xsl.in b/doc/html.xsl.in similarity index 100% rename from jemalloc/doc/html.xsl.in rename to doc/html.xsl.in diff --git a/jemalloc/doc/jemalloc.xml.in b/doc/jemalloc.xml.in similarity index 100% rename from jemalloc/doc/jemalloc.xml.in rename to doc/jemalloc.xml.in diff --git a/jemalloc/doc/manpages.xsl.in b/doc/manpages.xsl.in similarity index 100% rename from jemalloc/doc/manpages.xsl.in rename to doc/manpages.xsl.in diff --git a/jemalloc/doc/stylesheet.xsl b/doc/stylesheet.xsl similarity index 100% rename from jemalloc/doc/stylesheet.xsl rename to doc/stylesheet.xsl diff --git a/jemalloc/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h similarity index 100% rename from jemalloc/include/jemalloc/internal/arena.h rename to include/jemalloc/internal/arena.h diff --git a/jemalloc/include/jemalloc/internal/atomic.h b/include/jemalloc/internal/atomic.h similarity index 100% rename from jemalloc/include/jemalloc/internal/atomic.h rename to include/jemalloc/internal/atomic.h diff --git a/jemalloc/include/jemalloc/internal/base.h b/include/jemalloc/internal/base.h similarity index 100% rename from jemalloc/include/jemalloc/internal/base.h rename to include/jemalloc/internal/base.h diff --git a/jemalloc/include/jemalloc/internal/bitmap.h b/include/jemalloc/internal/bitmap.h similarity index 100% rename from jemalloc/include/jemalloc/internal/bitmap.h rename to include/jemalloc/internal/bitmap.h diff --git a/jemalloc/include/jemalloc/internal/chunk.h b/include/jemalloc/internal/chunk.h similarity index 100% rename from jemalloc/include/jemalloc/internal/chunk.h rename to include/jemalloc/internal/chunk.h diff --git a/jemalloc/include/jemalloc/internal/chunk_dss.h b/include/jemalloc/internal/chunk_dss.h similarity index 100% rename from jemalloc/include/jemalloc/internal/chunk_dss.h rename to include/jemalloc/internal/chunk_dss.h diff --git a/jemalloc/include/jemalloc/internal/chunk_mmap.h b/include/jemalloc/internal/chunk_mmap.h similarity index 100% rename from jemalloc/include/jemalloc/internal/chunk_mmap.h rename to include/jemalloc/internal/chunk_mmap.h diff --git a/jemalloc/include/jemalloc/internal/chunk_swap.h b/include/jemalloc/internal/chunk_swap.h similarity index 100% rename from jemalloc/include/jemalloc/internal/chunk_swap.h rename to include/jemalloc/internal/chunk_swap.h diff --git a/jemalloc/include/jemalloc/internal/ckh.h b/include/jemalloc/internal/ckh.h similarity index 100% rename from jemalloc/include/jemalloc/internal/ckh.h rename to include/jemalloc/internal/ckh.h diff --git a/jemalloc/include/jemalloc/internal/ctl.h b/include/jemalloc/internal/ctl.h similarity index 100% rename from jemalloc/include/jemalloc/internal/ctl.h rename to include/jemalloc/internal/ctl.h diff --git a/jemalloc/include/jemalloc/internal/extent.h b/include/jemalloc/internal/extent.h similarity index 100% rename from jemalloc/include/jemalloc/internal/extent.h rename to include/jemalloc/internal/extent.h diff --git a/jemalloc/include/jemalloc/internal/hash.h b/include/jemalloc/internal/hash.h similarity index 97% rename from jemalloc/include/jemalloc/internal/hash.h rename to include/jemalloc/internal/hash.h index 93905bf8..8a46ce30 100644 --- a/jemalloc/include/jemalloc/internal/hash.h +++ b/include/jemalloc/internal/hash.h @@ -26,7 +26,7 @@ uint64_t hash(const void *key, size_t len, uint64_t seed); JEMALLOC_INLINE uint64_t hash(const void *key, size_t len, uint64_t seed) { - const uint64_t m = 0xc6a4a7935bd1e995; + const uint64_t m = 0xc6a4a7935bd1e995LLU; const int r = 47; uint64_t h = seed ^ (len * m); const uint64_t *data = (const uint64_t *)key; diff --git a/jemalloc/include/jemalloc/internal/huge.h b/include/jemalloc/internal/huge.h similarity index 100% rename from jemalloc/include/jemalloc/internal/huge.h rename to include/jemalloc/internal/huge.h diff --git a/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in b/include/jemalloc/internal/jemalloc_internal.h.in similarity index 99% rename from jemalloc/include/jemalloc/internal/jemalloc_internal.h.in rename to include/jemalloc/internal/jemalloc_internal.h.in index 254adb6d..e9d60da7 100644 --- a/jemalloc/include/jemalloc/internal/jemalloc_internal.h.in +++ b/include/jemalloc/internal/jemalloc_internal.h.in @@ -33,6 +33,8 @@ #define JEMALLOC_MANGLE #include "../jemalloc@install_suffix@.h" +#include "private_namespace.h" + #if (defined(JEMALLOC_OSATOMIC) || defined(JEMALLOC_OSSPIN)) #include #endif diff --git a/jemalloc/include/jemalloc/internal/mb.h b/include/jemalloc/internal/mb.h similarity index 100% rename from jemalloc/include/jemalloc/internal/mb.h rename to include/jemalloc/internal/mb.h diff --git a/jemalloc/include/jemalloc/internal/mutex.h b/include/jemalloc/internal/mutex.h similarity index 100% rename from jemalloc/include/jemalloc/internal/mutex.h rename to include/jemalloc/internal/mutex.h diff --git a/include/jemalloc/internal/private_namespace.h b/include/jemalloc/internal/private_namespace.h new file mode 100644 index 00000000..2cfb1716 --- /dev/null +++ b/include/jemalloc/internal/private_namespace.h @@ -0,0 +1,196 @@ +#define arena_bin_index JEMALLOC_N(arena_bin_index) +#define arena_boot JEMALLOC_N(arena_boot) +#define arena_dalloc JEMALLOC_N(arena_dalloc) +#define arena_dalloc_bin JEMALLOC_N(arena_dalloc_bin) +#define arena_dalloc_large JEMALLOC_N(arena_dalloc_large) +#define arena_malloc JEMALLOC_N(arena_malloc) +#define arena_malloc_large JEMALLOC_N(arena_malloc_large) +#define arena_malloc_small JEMALLOC_N(arena_malloc_small) +#define arena_new JEMALLOC_N(arena_new) +#define arena_palloc JEMALLOC_N(arena_palloc) +#define arena_prof_accum JEMALLOC_N(arena_prof_accum) +#define arena_prof_ctx_get JEMALLOC_N(arena_prof_ctx_get) +#define arena_prof_ctx_set JEMALLOC_N(arena_prof_ctx_set) +#define arena_prof_promoted JEMALLOC_N(arena_prof_promoted) +#define arena_purge_all JEMALLOC_N(arena_purge_all) +#define arena_ralloc JEMALLOC_N(arena_ralloc) +#define arena_ralloc_no_move JEMALLOC_N(arena_ralloc_no_move) +#define arena_run_regind JEMALLOC_N(arena_run_regind) +#define arena_salloc JEMALLOC_N(arena_salloc) +#define arena_salloc_demote JEMALLOC_N(arena_salloc_demote) +#define arena_stats_merge JEMALLOC_N(arena_stats_merge) +#define arena_tcache_fill_small JEMALLOC_N(arena_tcache_fill_small) +#define arenas_bin_i_index JEMALLOC_N(arenas_bin_i_index) +#define arenas_extend JEMALLOC_N(arenas_extend) +#define arenas_lrun_i_index JEMALLOC_N(arenas_lrun_i_index) +#define atomic_add_uint32 JEMALLOC_N(atomic_add_uint32) +#define atomic_add_uint64 JEMALLOC_N(atomic_add_uint64) +#define atomic_sub_uint32 JEMALLOC_N(atomic_sub_uint32) +#define atomic_sub_uint64 JEMALLOC_N(atomic_sub_uint64) +#define base_alloc JEMALLOC_N(base_alloc) +#define base_boot JEMALLOC_N(base_boot) +#define base_node_alloc JEMALLOC_N(base_node_alloc) +#define base_node_dealloc JEMALLOC_N(base_node_dealloc) +#define bitmap_full JEMALLOC_N(bitmap_full) +#define bitmap_get JEMALLOC_N(bitmap_get) +#define bitmap_info_init JEMALLOC_N(bitmap_info_init) +#define bitmap_info_ngroups JEMALLOC_N(bitmap_info_ngroups) +#define bitmap_init JEMALLOC_N(bitmap_init) +#define bitmap_set JEMALLOC_N(bitmap_set) +#define bitmap_sfu JEMALLOC_N(bitmap_sfu) +#define bitmap_size JEMALLOC_N(bitmap_size) +#define bitmap_unset JEMALLOC_N(bitmap_unset) +#define bt_init JEMALLOC_N(bt_init) +#define buferror JEMALLOC_N(buferror) +#define choose_arena JEMALLOC_N(choose_arena) +#define choose_arena_hard JEMALLOC_N(choose_arena_hard) +#define chunk_alloc JEMALLOC_N(chunk_alloc) +#define chunk_alloc_dss JEMALLOC_N(chunk_alloc_dss) +#define chunk_alloc_mmap JEMALLOC_N(chunk_alloc_mmap) +#define chunk_alloc_mmap_noreserve JEMALLOC_N(chunk_alloc_mmap_noreserve) +#define chunk_alloc_swap JEMALLOC_N(chunk_alloc_swap) +#define chunk_boot JEMALLOC_N(chunk_boot) +#define chunk_dealloc JEMALLOC_N(chunk_dealloc) +#define chunk_dealloc_dss JEMALLOC_N(chunk_dealloc_dss) +#define chunk_dealloc_mmap JEMALLOC_N(chunk_dealloc_mmap) +#define chunk_dealloc_swap JEMALLOC_N(chunk_dealloc_swap) +#define chunk_dss_boot JEMALLOC_N(chunk_dss_boot) +#define chunk_in_dss JEMALLOC_N(chunk_in_dss) +#define chunk_in_swap JEMALLOC_N(chunk_in_swap) +#define chunk_mmap_boot JEMALLOC_N(chunk_mmap_boot) +#define chunk_swap_boot JEMALLOC_N(chunk_swap_boot) +#define chunk_swap_enable JEMALLOC_N(chunk_swap_enable) +#define ckh_bucket_search JEMALLOC_N(ckh_bucket_search) +#define ckh_count JEMALLOC_N(ckh_count) +#define ckh_delete JEMALLOC_N(ckh_delete) +#define ckh_evict_reloc_insert JEMALLOC_N(ckh_evict_reloc_insert) +#define ckh_insert JEMALLOC_N(ckh_insert) +#define ckh_isearch JEMALLOC_N(ckh_isearch) +#define ckh_iter JEMALLOC_N(ckh_iter) +#define ckh_new JEMALLOC_N(ckh_new) +#define ckh_pointer_hash JEMALLOC_N(ckh_pointer_hash) +#define ckh_pointer_keycomp JEMALLOC_N(ckh_pointer_keycomp) +#define ckh_rebuild JEMALLOC_N(ckh_rebuild) +#define ckh_remove JEMALLOC_N(ckh_remove) +#define ckh_search JEMALLOC_N(ckh_search) +#define ckh_string_hash JEMALLOC_N(ckh_string_hash) +#define ckh_string_keycomp JEMALLOC_N(ckh_string_keycomp) +#define ckh_try_bucket_insert JEMALLOC_N(ckh_try_bucket_insert) +#define ckh_try_insert JEMALLOC_N(ckh_try_insert) +#define create_zone JEMALLOC_N(create_zone) +#define ctl_boot JEMALLOC_N(ctl_boot) +#define ctl_bymib JEMALLOC_N(ctl_bymib) +#define ctl_byname JEMALLOC_N(ctl_byname) +#define ctl_nametomib JEMALLOC_N(ctl_nametomib) +#define extent_tree_ad_first JEMALLOC_N(extent_tree_ad_first) +#define extent_tree_ad_insert JEMALLOC_N(extent_tree_ad_insert) +#define extent_tree_ad_iter JEMALLOC_N(extent_tree_ad_iter) +#define extent_tree_ad_iter_recurse JEMALLOC_N(extent_tree_ad_iter_recurse) +#define extent_tree_ad_iter_start JEMALLOC_N(extent_tree_ad_iter_start) +#define extent_tree_ad_last JEMALLOC_N(extent_tree_ad_last) +#define extent_tree_ad_new JEMALLOC_N(extent_tree_ad_new) +#define extent_tree_ad_next JEMALLOC_N(extent_tree_ad_next) +#define extent_tree_ad_nsearch JEMALLOC_N(extent_tree_ad_nsearch) +#define extent_tree_ad_prev JEMALLOC_N(extent_tree_ad_prev) +#define extent_tree_ad_psearch JEMALLOC_N(extent_tree_ad_psearch) +#define extent_tree_ad_remove JEMALLOC_N(extent_tree_ad_remove) +#define extent_tree_ad_reverse_iter JEMALLOC_N(extent_tree_ad_reverse_iter) +#define extent_tree_ad_reverse_iter_recurse JEMALLOC_N(extent_tree_ad_reverse_iter_recurse) +#define extent_tree_ad_reverse_iter_start JEMALLOC_N(extent_tree_ad_reverse_iter_start) +#define extent_tree_ad_search JEMALLOC_N(extent_tree_ad_search) +#define extent_tree_szad_first JEMALLOC_N(extent_tree_szad_first) +#define extent_tree_szad_insert JEMALLOC_N(extent_tree_szad_insert) +#define extent_tree_szad_iter JEMALLOC_N(extent_tree_szad_iter) +#define extent_tree_szad_iter_recurse JEMALLOC_N(extent_tree_szad_iter_recurse) +#define extent_tree_szad_iter_start JEMALLOC_N(extent_tree_szad_iter_start) +#define extent_tree_szad_last JEMALLOC_N(extent_tree_szad_last) +#define extent_tree_szad_new JEMALLOC_N(extent_tree_szad_new) +#define extent_tree_szad_next JEMALLOC_N(extent_tree_szad_next) +#define extent_tree_szad_nsearch JEMALLOC_N(extent_tree_szad_nsearch) +#define extent_tree_szad_prev JEMALLOC_N(extent_tree_szad_prev) +#define extent_tree_szad_psearch JEMALLOC_N(extent_tree_szad_psearch) +#define extent_tree_szad_remove JEMALLOC_N(extent_tree_szad_remove) +#define extent_tree_szad_reverse_iter JEMALLOC_N(extent_tree_szad_reverse_iter) +#define extent_tree_szad_reverse_iter_recurse JEMALLOC_N(extent_tree_szad_reverse_iter_recurse) +#define extent_tree_szad_reverse_iter_start JEMALLOC_N(extent_tree_szad_reverse_iter_start) +#define extent_tree_szad_search JEMALLOC_N(extent_tree_szad_search) +#define hash JEMALLOC_N(hash) +#define huge_boot JEMALLOC_N(huge_boot) +#define huge_dalloc JEMALLOC_N(huge_dalloc) +#define huge_malloc JEMALLOC_N(huge_malloc) +#define huge_palloc JEMALLOC_N(huge_palloc) +#define huge_prof_ctx_get JEMALLOC_N(huge_prof_ctx_get) +#define huge_prof_ctx_set JEMALLOC_N(huge_prof_ctx_set) +#define huge_ralloc JEMALLOC_N(huge_ralloc) +#define huge_ralloc_no_move JEMALLOC_N(huge_ralloc_no_move) +#define huge_salloc JEMALLOC_N(huge_salloc) +#define iallocm JEMALLOC_N(iallocm) +#define icalloc JEMALLOC_N(icalloc) +#define idalloc JEMALLOC_N(idalloc) +#define imalloc JEMALLOC_N(imalloc) +#define ipalloc JEMALLOC_N(ipalloc) +#define iralloc JEMALLOC_N(iralloc) +#define isalloc JEMALLOC_N(isalloc) +#define ivsalloc JEMALLOC_N(ivsalloc) +#define jemalloc_darwin_init JEMALLOC_N(jemalloc_darwin_init) +#define jemalloc_postfork JEMALLOC_N(jemalloc_postfork) +#define jemalloc_prefork JEMALLOC_N(jemalloc_prefork) +#define malloc_cprintf JEMALLOC_N(malloc_cprintf) +#define malloc_mutex_destroy JEMALLOC_N(malloc_mutex_destroy) +#define malloc_mutex_init JEMALLOC_N(malloc_mutex_init) +#define malloc_mutex_lock JEMALLOC_N(malloc_mutex_lock) +#define malloc_mutex_trylock JEMALLOC_N(malloc_mutex_trylock) +#define malloc_mutex_unlock JEMALLOC_N(malloc_mutex_unlock) +#define malloc_printf JEMALLOC_N(malloc_printf) +#define malloc_write JEMALLOC_N(malloc_write) +#define mb_write JEMALLOC_N(mb_write) +#define pow2_ceil JEMALLOC_N(pow2_ceil) +#define prof_alloc_prep JEMALLOC_N(prof_alloc_prep) +#define prof_backtrace JEMALLOC_N(prof_backtrace) +#define prof_boot0 JEMALLOC_N(prof_boot0) +#define prof_boot1 JEMALLOC_N(prof_boot1) +#define prof_boot2 JEMALLOC_N(prof_boot2) +#define prof_ctx_get JEMALLOC_N(prof_ctx_get) +#define prof_ctx_set JEMALLOC_N(prof_ctx_set) +#define prof_free JEMALLOC_N(prof_free) +#define prof_gdump JEMALLOC_N(prof_gdump) +#define prof_idump JEMALLOC_N(prof_idump) +#define prof_lookup JEMALLOC_N(prof_lookup) +#define prof_malloc JEMALLOC_N(prof_malloc) +#define prof_mdump JEMALLOC_N(prof_mdump) +#define prof_realloc JEMALLOC_N(prof_realloc) +#define prof_sample_accum_update JEMALLOC_N(prof_sample_accum_update) +#define prof_sample_threshold_update JEMALLOC_N(prof_sample_threshold_update) +#define prof_tdata_init JEMALLOC_N(prof_tdata_init) +#define pthread_create JEMALLOC_N(pthread_create) +#define rtree_get JEMALLOC_N(rtree_get) +#define rtree_get_locked JEMALLOC_N(rtree_get_locked) +#define rtree_new JEMALLOC_N(rtree_new) +#define rtree_set JEMALLOC_N(rtree_set) +#define s2u JEMALLOC_N(s2u) +#define sa2u JEMALLOC_N(sa2u) +#define stats_arenas_i_bins_j_index JEMALLOC_N(stats_arenas_i_bins_j_index) +#define stats_arenas_i_index JEMALLOC_N(stats_arenas_i_index) +#define stats_arenas_i_lruns_j_index JEMALLOC_N(stats_arenas_i_lruns_j_index) +#define stats_cactive_add JEMALLOC_N(stats_cactive_add) +#define stats_cactive_get JEMALLOC_N(stats_cactive_get) +#define stats_cactive_sub JEMALLOC_N(stats_cactive_sub) +#define stats_print JEMALLOC_N(stats_print) +#define szone2ozone JEMALLOC_N(szone2ozone) +#define tcache_alloc_easy JEMALLOC_N(tcache_alloc_easy) +#define tcache_alloc_large JEMALLOC_N(tcache_alloc_large) +#define tcache_alloc_small JEMALLOC_N(tcache_alloc_small) +#define tcache_alloc_small_hard JEMALLOC_N(tcache_alloc_small_hard) +#define tcache_bin_flush_large JEMALLOC_N(tcache_bin_flush_large) +#define tcache_bin_flush_small JEMALLOC_N(tcache_bin_flush_small) +#define tcache_boot JEMALLOC_N(tcache_boot) +#define tcache_create JEMALLOC_N(tcache_create) +#define tcache_dalloc_large JEMALLOC_N(tcache_dalloc_large) +#define tcache_dalloc_small JEMALLOC_N(tcache_dalloc_small) +#define tcache_destroy JEMALLOC_N(tcache_destroy) +#define tcache_event JEMALLOC_N(tcache_event) +#define tcache_get JEMALLOC_N(tcache_get) +#define tcache_stats_merge JEMALLOC_N(tcache_stats_merge) +#define thread_allocated_get JEMALLOC_N(thread_allocated_get) +#define thread_allocated_get_hard JEMALLOC_N(thread_allocated_get_hard) +#define u2s JEMALLOC_N(u2s) diff --git a/jemalloc/include/jemalloc/internal/prn.h b/include/jemalloc/internal/prn.h similarity index 100% rename from jemalloc/include/jemalloc/internal/prn.h rename to include/jemalloc/internal/prn.h diff --git a/jemalloc/include/jemalloc/internal/prof.h b/include/jemalloc/internal/prof.h similarity index 100% rename from jemalloc/include/jemalloc/internal/prof.h rename to include/jemalloc/internal/prof.h diff --git a/jemalloc/include/jemalloc/internal/ql.h b/include/jemalloc/internal/ql.h similarity index 100% rename from jemalloc/include/jemalloc/internal/ql.h rename to include/jemalloc/internal/ql.h diff --git a/jemalloc/include/jemalloc/internal/qr.h b/include/jemalloc/internal/qr.h similarity index 100% rename from jemalloc/include/jemalloc/internal/qr.h rename to include/jemalloc/internal/qr.h diff --git a/jemalloc/include/jemalloc/internal/rb.h b/include/jemalloc/internal/rb.h similarity index 100% rename from jemalloc/include/jemalloc/internal/rb.h rename to include/jemalloc/internal/rb.h diff --git a/jemalloc/include/jemalloc/internal/rtree.h b/include/jemalloc/internal/rtree.h similarity index 100% rename from jemalloc/include/jemalloc/internal/rtree.h rename to include/jemalloc/internal/rtree.h diff --git a/jemalloc/include/jemalloc/internal/stats.h b/include/jemalloc/internal/stats.h similarity index 100% rename from jemalloc/include/jemalloc/internal/stats.h rename to include/jemalloc/internal/stats.h diff --git a/jemalloc/include/jemalloc/internal/tcache.h b/include/jemalloc/internal/tcache.h similarity index 100% rename from jemalloc/include/jemalloc/internal/tcache.h rename to include/jemalloc/internal/tcache.h diff --git a/jemalloc/include/jemalloc/internal/zone.h b/include/jemalloc/internal/zone.h similarity index 100% rename from jemalloc/include/jemalloc/internal/zone.h rename to include/jemalloc/internal/zone.h diff --git a/jemalloc/include/jemalloc/jemalloc.h.in b/include/jemalloc/jemalloc.h.in similarity index 100% rename from jemalloc/include/jemalloc/jemalloc.h.in rename to include/jemalloc/jemalloc.h.in diff --git a/jemalloc/include/jemalloc/jemalloc_defs.h.in b/include/jemalloc/jemalloc_defs.h.in similarity index 93% rename from jemalloc/include/jemalloc/jemalloc_defs.h.in rename to include/jemalloc/jemalloc_defs.h.in index d8c81d7c..9ac7e1c2 100644 --- a/jemalloc/include/jemalloc/jemalloc_defs.h.in +++ b/include/jemalloc/jemalloc_defs.h.in @@ -18,6 +18,15 @@ #undef JEMALLOC_P #endif +/* + * JEMALLOC_PRIVATE_NAMESPACE is used as a prefix for all library-private APIs. + * For shared libraries, symbol visibility mechanisms prevent these symbols + * from being exported, but for static libraries, naming collisions are a real + * possibility. + */ +#undef JEMALLOC_PRIVATE_NAMESPACE +#undef JEMALLOC_N + /* * Hyper-threaded CPUs may need a special instruction inside spin loops in * order to yield to another virtual CPU. diff --git a/jemalloc/install-sh b/install-sh similarity index 100% rename from jemalloc/install-sh rename to install-sh diff --git a/jemalloc/src/arena.c b/src/arena.c similarity index 99% rename from jemalloc/src/arena.c rename to src/arena.c index 9aaf47ff..e00dccc3 100644 --- a/jemalloc/src/arena.c +++ b/src/arena.c @@ -869,9 +869,9 @@ arena_purge(arena_t *arena, bool all) assert(ndirty == arena->ndirty); #endif assert(arena->ndirty > arena->npurgatory || all); - assert(arena->ndirty > chunk_npages || all); + assert(arena->ndirty - arena->npurgatory > chunk_npages || all); assert((arena->nactive >> opt_lg_dirty_mult) < (arena->ndirty - - npurgatory) || all); + arena->npurgatory) || all); #ifdef JEMALLOC_STATS arena->stats.npurge++; diff --git a/jemalloc/src/atomic.c b/src/atomic.c similarity index 100% rename from jemalloc/src/atomic.c rename to src/atomic.c diff --git a/jemalloc/src/base.c b/src/base.c similarity index 100% rename from jemalloc/src/base.c rename to src/base.c diff --git a/jemalloc/src/bitmap.c b/src/bitmap.c similarity index 100% rename from jemalloc/src/bitmap.c rename to src/bitmap.c diff --git a/jemalloc/src/chunk.c b/src/chunk.c similarity index 100% rename from jemalloc/src/chunk.c rename to src/chunk.c diff --git a/jemalloc/src/chunk_dss.c b/src/chunk_dss.c similarity index 100% rename from jemalloc/src/chunk_dss.c rename to src/chunk_dss.c diff --git a/jemalloc/src/chunk_mmap.c b/src/chunk_mmap.c similarity index 100% rename from jemalloc/src/chunk_mmap.c rename to src/chunk_mmap.c diff --git a/jemalloc/src/chunk_swap.c b/src/chunk_swap.c similarity index 100% rename from jemalloc/src/chunk_swap.c rename to src/chunk_swap.c diff --git a/jemalloc/src/ckh.c b/src/ckh.c similarity index 99% rename from jemalloc/src/ckh.c rename to src/ckh.c index 143b5b5f..43fcc252 100644 --- a/jemalloc/src/ckh.c +++ b/src/ckh.c @@ -556,7 +556,7 @@ ckh_string_hash(const void *key, unsigned minbits, size_t *hash1, size_t *hash2) } else { ret1 = h; ret2 = hash(key, strlen((const char *)key), - 0x8432a476666bbc13U); + 0x8432a476666bbc13LLU); } *hash1 = ret1; diff --git a/jemalloc/src/ctl.c b/src/ctl.c similarity index 99% rename from jemalloc/src/ctl.c rename to src/ctl.c index 40fdbacb..e5336d36 100644 --- a/jemalloc/src/ctl.c +++ b/src/ctl.c @@ -1151,11 +1151,13 @@ thread_arena_ctl(const size_t *mib, size_t miblen, void *oldp, size_t *oldlenp, /* Set new arena association. */ ARENA_SET(arena); +#ifdef JEMALLOC_TCACHE { tcache_t *tcache = TCACHE_GET(); if (tcache != NULL) tcache->arena = arena; } +#endif } ret = 0; diff --git a/jemalloc/src/extent.c b/src/extent.c similarity index 100% rename from jemalloc/src/extent.c rename to src/extent.c diff --git a/jemalloc/src/hash.c b/src/hash.c similarity index 100% rename from jemalloc/src/hash.c rename to src/hash.c diff --git a/jemalloc/src/huge.c b/src/huge.c similarity index 100% rename from jemalloc/src/huge.c rename to src/huge.c diff --git a/jemalloc/src/jemalloc.c b/src/jemalloc.c similarity index 100% rename from jemalloc/src/jemalloc.c rename to src/jemalloc.c diff --git a/jemalloc/src/mb.c b/src/mb.c similarity index 100% rename from jemalloc/src/mb.c rename to src/mb.c diff --git a/jemalloc/src/mutex.c b/src/mutex.c similarity index 100% rename from jemalloc/src/mutex.c rename to src/mutex.c diff --git a/jemalloc/src/prof.c b/src/prof.c similarity index 99% rename from jemalloc/src/prof.c rename to src/prof.c index 8370042b..65493759 100644 --- a/jemalloc/src/prof.c +++ b/src/prof.c @@ -1072,7 +1072,7 @@ prof_bt_hash(const void *key, unsigned minbits, size_t *hash1, size_t *hash2) } else { ret1 = h; ret2 = hash(bt->vec, bt->len * sizeof(void *), - 0x8432a476666bbc13U); + 0x8432a476666bbc13LLU); } *hash1 = ret1; diff --git a/jemalloc/src/rtree.c b/src/rtree.c similarity index 100% rename from jemalloc/src/rtree.c rename to src/rtree.c diff --git a/jemalloc/src/stats.c b/src/stats.c similarity index 100% rename from jemalloc/src/stats.c rename to src/stats.c diff --git a/jemalloc/src/tcache.c b/src/tcache.c similarity index 100% rename from jemalloc/src/tcache.c rename to src/tcache.c diff --git a/jemalloc/src/zone.c b/src/zone.c similarity index 100% rename from jemalloc/src/zone.c rename to src/zone.c diff --git a/jemalloc/test/allocated.c b/test/allocated.c similarity index 100% rename from jemalloc/test/allocated.c rename to test/allocated.c diff --git a/jemalloc/test/allocated.exp b/test/allocated.exp similarity index 100% rename from jemalloc/test/allocated.exp rename to test/allocated.exp diff --git a/jemalloc/test/allocm.c b/test/allocm.c similarity index 100% rename from jemalloc/test/allocm.c rename to test/allocm.c diff --git a/jemalloc/test/allocm.exp b/test/allocm.exp similarity index 100% rename from jemalloc/test/allocm.exp rename to test/allocm.exp diff --git a/jemalloc/test/bitmap.c b/test/bitmap.c similarity index 100% rename from jemalloc/test/bitmap.c rename to test/bitmap.c diff --git a/jemalloc/test/bitmap.exp b/test/bitmap.exp similarity index 100% rename from jemalloc/test/bitmap.exp rename to test/bitmap.exp diff --git a/jemalloc/test/jemalloc_test.h.in b/test/jemalloc_test.h.in similarity index 100% rename from jemalloc/test/jemalloc_test.h.in rename to test/jemalloc_test.h.in diff --git a/jemalloc/test/mremap.c b/test/mremap.c similarity index 100% rename from jemalloc/test/mremap.c rename to test/mremap.c diff --git a/jemalloc/test/mremap.exp b/test/mremap.exp similarity index 100% rename from jemalloc/test/mremap.exp rename to test/mremap.exp diff --git a/jemalloc/test/posix_memalign.c b/test/posix_memalign.c similarity index 100% rename from jemalloc/test/posix_memalign.c rename to test/posix_memalign.c diff --git a/jemalloc/test/posix_memalign.exp b/test/posix_memalign.exp similarity index 100% rename from jemalloc/test/posix_memalign.exp rename to test/posix_memalign.exp diff --git a/jemalloc/test/rallocm.c b/test/rallocm.c similarity index 100% rename from jemalloc/test/rallocm.c rename to test/rallocm.c diff --git a/jemalloc/test/rallocm.exp b/test/rallocm.exp similarity index 100% rename from jemalloc/test/rallocm.exp rename to test/rallocm.exp diff --git a/jemalloc/test/thread_arena.c b/test/thread_arena.c similarity index 100% rename from jemalloc/test/thread_arena.c rename to test/thread_arena.c diff --git a/jemalloc/test/thread_arena.exp b/test/thread_arena.exp similarity index 100% rename from jemalloc/test/thread_arena.exp rename to test/thread_arena.exp