2 * Override settings that were generated in jemalloc_defs.h as necessary.
5 #undef JEMALLOC_OVERRIDE_VALLOC
7 #ifndef MALLOC_PRODUCTION
12 * The following are architecture-dependent, so conditionally define them for
13 * each supported architecture.
16 #undef JEMALLOC_TLS_MODEL
17 #undef STATIC_PAGE_SHIFT
21 #undef LG_SIZEOF_INTMAX_T
24 # define LG_SIZEOF_PTR 2
25 # define CPU_SPINWAIT __asm__ volatile("pause")
26 # define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
29 # define LG_SIZEOF_PTR 3
32 # define LG_SIZEOF_PTR 3
33 # define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
36 # define LG_SIZEOF_PTR 3
37 # define CPU_SPINWAIT __asm__ volatile("pause")
38 # define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
41 # define LG_SIZEOF_PTR 2
44 # define LG_SIZEOF_PTR 3
48 # define LG_SIZEOF_PTR 3
50 # define LG_SIZEOF_PTR 2
54 # define LG_SIZEOF_PTR 3
55 #elif defined(__powerpc__)
56 # define LG_SIZEOF_PTR 2
59 #ifndef JEMALLOC_TLS_MODEL
60 # define JEMALLOC_TLS_MODEL /* Default. */
63 #define STATIC_PAGE_SHIFT PAGE_SHIFT
64 #define LG_SIZEOF_INT 2
65 #define LG_SIZEOF_LONG LG_SIZEOF_PTR
66 #define LG_SIZEOF_INTMAX_T 3
68 /* Disable lazy-lock machinery, mangle isthreaded, and adjust its type. */
69 #undef JEMALLOC_LAZY_LOCK
70 extern int __isthreaded;
71 #define isthreaded ((bool)__isthreaded)
78 #undef je_posix_memalign
79 #undef je_malloc_usable_size
91 #define je_malloc __malloc
92 #define je_calloc __calloc
93 #define je_realloc __realloc
94 #define je_free __free
95 #define je_posix_memalign __posix_memalign
96 #define je_malloc_usable_size __malloc_usable_size
97 #define je_mallocx __mallocx
98 #define je_rallocx __rallocx
99 #define je_xallocx __xallocx
100 #define je_sallocx __sallocx
101 #define je_dallocx __dallocx
102 #define je_nallocx __nallocx
103 #define je_allocm __allocm
104 #define je_rallocm __rallocm
105 #define je_sallocm __sallocm
106 #define je_dallocm __dallocm
107 #define je_nallocm __nallocm
112 #define pthread_mutex_lock _pthread_mutex_lock
113 #define pthread_mutex_unlock _pthread_mutex_unlock
117 * Define 'weak' symbols so that an application can have its own versions
118 * of malloc, calloc, realloc, free, et al.
120 __weak_reference(__malloc, malloc);
121 __weak_reference(__calloc, calloc);
122 __weak_reference(__realloc, realloc);
123 __weak_reference(__free, free);
124 __weak_reference(__posix_memalign, posix_memalign);
125 __weak_reference(__malloc_usable_size, malloc_usable_size);
126 __weak_reference(__mallocx, mallocx);
127 __weak_reference(__rallocx, rallocx);
128 __weak_reference(__xallocx, xallocx);
129 __weak_reference(__sallocx, sallocx);
130 __weak_reference(__dallocx, dallocx);
131 __weak_reference(__nallocx, nallocx);
132 __weak_reference(__allocm, allocm);
133 __weak_reference(__rallocm, rallocm);
134 __weak_reference(__sallocm, sallocm);
135 __weak_reference(__dallocm, dallocm);
136 __weak_reference(__nallocm, nallocm);