svn commit: r250991 - in head: contrib/jemalloc/include/jemalloc include lib/libc/stdlib/jemalloc
Marcel Moolenaar
marcel at FreeBSD.org
Sat May 25 18:59:12 UTC 2013
Author: marcel
Date: Sat May 25 18:59:11 2013
New Revision: 250991
URL: http://svnweb.freebsd.org/changeset/base/250991
Log:
Make the malloc(3) family of functions weak and make their non-weak
implementations visible for use by applications. The functions $F that
are now weak symbols are:
allocm, calloc, dallocm, free, malloc, malloc_usable_size,
nallocm, posix_memalign, rallocm, realloc, sallocm
The non-weak implementations of $F are exported as __$F.
Submitted by: stevek at juniper.net
Reviewed by: jasone@, kib@
Approved by: jasone@ (jemalloc)
Obtained from: juniper Networks, Inc
Modified:
head/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
head/include/malloc_np.h
head/lib/libc/stdlib/jemalloc/Symbol.map
Modified: head/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
==============================================================================
--- head/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h Sat May 25 18:55:55 2013 (r250990)
+++ head/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h Sat May 25 18:59:11 2013 (r250991)
@@ -68,9 +68,50 @@ extern int __isthreaded;
#define isthreaded ((bool)__isthreaded)
/* Mangle. */
+#undef je_malloc
+#undef je_calloc
+#undef je_realloc
+#undef je_free
+#undef je_posix_memalign
+#undef je_malloc_usable_size
+#undef je_allocm
+#undef je_rallocm
+#undef je_sallocm
+#undef je_dallocm
+#undef je_nallocm
+#define je_malloc __malloc
+#define je_calloc __calloc
+#define je_realloc __realloc
+#define je_free __free
+#define je_posix_memalign __posix_memalign
+#define je_malloc_usable_size __malloc_usable_size
+#define je_allocm __allocm
+#define je_rallocm __rallocm
+#define je_sallocm __sallocm
+#define je_dallocm __dallocm
+#define je_nallocm __nallocm
#define open _open
#define read _read
#define write _write
#define close _close
#define pthread_mutex_lock _pthread_mutex_lock
#define pthread_mutex_unlock _pthread_mutex_unlock
+
+#ifdef JEMALLOC_C_
+/*
+ * Define 'weak' symbols so that an application can have its own versions
+ * of malloc, calloc, realloc, free, et al.
+ */
+__weak_reference(__malloc, malloc);
+__weak_reference(__calloc, calloc);
+__weak_reference(__realloc, realloc);
+__weak_reference(__free, free);
+__weak_reference(__posix_memalign, posix_memalign);
+__weak_reference(__malloc_usable_size, malloc_usable_size);
+__weak_reference(__allocm, allocm);
+__weak_reference(__rallocm, rallocm);
+__weak_reference(__sallocm, sallocm);
+__weak_reference(__dallocm, dallocm);
+__weak_reference(__nallocm, nallocm);
+#endif
+
Modified: head/include/malloc_np.h
==============================================================================
--- head/include/malloc_np.h Sat May 25 18:55:55 2013 (r250990)
+++ head/include/malloc_np.h Sat May 25 18:59:11 2013 (r250991)
@@ -61,6 +61,18 @@ int rallocm(void **ptr, size_t *rsize, s
int sallocm(const void *ptr, size_t *rsize, int flags) __nonnull(1);
int dallocm(void *ptr, int flags) __nonnull(1);
int nallocm(size_t *rsize, size_t size, int flags);
+
+void * __calloc(size_t, size_t) __malloc_like;
+void * __malloc(size_t) __malloc_like;
+void * __realloc(void *, size_t);
+void __free(void *);
+int __posix_memalign(void **, size_t, size_t);
+size_t __malloc_usable_size(const void *);
+int __allocm(void **, size_t *, size_t, int) __nonnull(1);
+int __rallocm(void **, size_t *, size_t, size_t, int) __nonnull(1);
+int __sallocm(const void *, size_t *, int) __nonnull(1);
+int __dallocm(void *, int) __nonnull(1);
+int __nallocm(size_t *, size_t, int);
__END_DECLS
#endif /* _MALLOC_NP_H_ */
Modified: head/lib/libc/stdlib/jemalloc/Symbol.map
==============================================================================
--- head/lib/libc/stdlib/jemalloc/Symbol.map Sat May 25 18:55:55 2013 (r250990)
+++ head/lib/libc/stdlib/jemalloc/Symbol.map Sat May 25 18:59:11 2013 (r250991)
@@ -26,6 +26,17 @@ FBSD_1.3 {
sallocm;
dallocm;
nallocm;
+ __malloc;
+ __calloc;
+ __realloc;
+ __free;
+ __posix_memalign;
+ __malloc_usable_size;
+ __allocm;
+ __rallocm;
+ __sallocm;
+ __dallocm;
+ __nallocm;
};
FBSDprivate_1.0 {
More information about the svn-src-all
mailing list