From: Lu Weitao Date: Thu, 12 Aug 2021 15:20:40 +0800 Subject: [PATCH 5/5] fix-multi-define [Why] met multiple definition as bellow: [ 117s] /usr/bin/ld: test/alloc_benchmark_tbb-load_tbbmalloc_symbols.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:28: multiple definition of `scalable_mallo c'; test/alloc_benchmark_tbb-alloc_benchmark.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:28: first defined here [ 117s] /usr/bin/ld: test/alloc_benchmark_tbb-load_tbbmalloc_symbols.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:29: multiple definition of `scalable_reall oc'; test/alloc_benchmark_tbb-alloc_benchmark.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:29: first defined here [ 117s] /usr/bin/ld: test/alloc_benchmark_tbb-load_tbbmalloc_symbols.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:30: multiple definition of `scalable_callo c'; test/alloc_benchmark_tbb-alloc_benchmark.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:30: first defined here [ 117s] /usr/bin/ld: test/alloc_benchmark_tbb-load_tbbmalloc_symbols.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:31: multiple definition of `scalable_free' ; test/alloc_benchmark_tbb-alloc_benchmark.o:/home/abuild/rpmbuild/BUILD/memkind-1.7.0/test/tbbmalloc.h:31: first defined here Signed-off-by: Lu Weitao --- memkind-1.7.0/test/alloc_benchmark.c | 2 ++ memkind-1.7.0/test/load_tbbmalloc_symbols.c | 3 +++ memkind-1.7.0/test/tbbmalloc.h | 8 ++++---- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/test/alloc_benchmark.c b/test/alloc_benchmark.c --- a/test/alloc_benchmark.c +++ b/test/alloc_benchmark.c @@ -47,6 +47,8 @@ double ctimer(void); void usage(char * name); +void* (*scalable_malloc)(size_t); +void (*scalable_free)(void*); int main(int argc, char * argv[]) { diff --git a/test/load_tbbmalloc_symbols.c b/test/load_tbbmalloc_symbols.c --- a/test/load_tbbmalloc_symbols.c +++ b/test/load_tbbmalloc_symbols.c @@ -24,6 +24,9 @@ #include "tbbmalloc.h" +void* (*scalable_realloc)(void*, size_t); +void* (*scalable_calloc)(size_t, size_t); + int load_tbbmalloc_symbols() { const char so_name[]="libtbbmalloc.so.2"; diff --git a/test/tbbmalloc.h b/test/tbbmalloc.h --- a/test/tbbmalloc.h +++ b/test/tbbmalloc.h @@ -25,9 +25,9 @@ #include #include -void* (*scalable_malloc)(size_t); -void* (*scalable_realloc)(void*, size_t); -void* (*scalable_calloc)(size_t, size_t); -void (*scalable_free)(void*); +extern void* (*scalable_malloc)(size_t); +extern void* (*scalable_realloc)(void*, size_t); +extern void* (*scalable_calloc)(size_t, size_t); +extern void (*scalable_free)(void*); int load_tbbmalloc_symbols(); -- 2.23.0