summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure9
-rw-r--r--libavutil/mem.c17
2 files changed, 24 insertions, 2 deletions
diff --git a/configure b/configure
index 28509b4abc..d6739b779f 100755
--- a/configure
+++ b/configure
@@ -231,6 +231,7 @@ Advanced options (experts only):
--disable-vis disable VIS optimizations
--disable-yasm disable use of yasm assembler
--enable-pic build position-independent code
+ --malloc-prefix=PFX prefix malloc and related names with PFX
Developer options (useful when working on FFmpeg itself):
--disable-debug disable debugging symbols
@@ -1108,6 +1109,7 @@ CMDLINE_SET="
host_os
ld
logfile
+ malloc_prefix
nm
source_path
sysinclude
@@ -2438,9 +2440,9 @@ check_func gethrtime
check_func getrusage
check_func inet_aton $network_extralibs
check_func isatty
-check_func memalign
+check_func ${malloc_prefix}memalign && enable memalign
check_func mkstemp
-check_func posix_memalign
+check_func ${malloc_prefix}posix_memalign && enable posix_memalign
check_func_headers io.h setmode
check_func_headers lzo/lzo1x.h lzo1x_999_compress
check_func_headers windows.h GetProcessTimes
@@ -2978,6 +2980,9 @@ cat > $TMPH <<EOF
#define EXTERN_ASM ${extern_prefix}
EOF
+test -n "$malloc_prefix" &&
+ echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
+
if enabled small || disabled optimizations; then
echo "#define av_always_inline" >> $TMPH
fi
diff --git a/libavutil/mem.c b/libavutil/mem.c
index 741450b53f..4d776d4450 100644
--- a/libavutil/mem.c
+++ b/libavutil/mem.c
@@ -33,6 +33,7 @@
#include <malloc.h>
#endif
+#include "avutil.h"
#include "mem.h"
/* here we can use OS-dependent allocation functions */
@@ -40,6 +41,22 @@
#undef malloc
#undef realloc
+#ifdef MALLOC_PREFIX
+
+#define malloc AV_JOIN(MALLOC_PREFIX, malloc)
+#define memalign AV_JOIN(MALLOC_PREFIX, memalign)
+#define posix_memalign AV_JOIN(MALLOC_PREFIX, posix_memalign)
+#define realloc AV_JOIN(MALLOC_PREFIX, realloc)
+#define free AV_JOIN(MALLOC_PREFIX, free)
+
+void *malloc(size_t size);
+void *memalign(size_t align, size_t size);
+int posix_memalign(void **ptr, size_t align, size_t size);
+void *realloc(void *ptr, size_t size);
+void free(void *ptr);
+
+#endif /* MALLOC_PREFIX */
+
/* You can redefine av_malloc and av_free in your project to use your
memory allocator. You do not need to suppress this file because the
linker will do it automatically. */