<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to feature-requests</title><link>https://sourceforge.net/p/dmalloc/feature-requests/</link><description>Recent changes to feature-requests</description><atom:link href="https://sourceforge.net/p/dmalloc/feature-requests/feed.rss" rel="self"/><language>en</language><lastBuildDate>Tue, 09 Jan 2018 15:37:56 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/dmalloc/feature-requests/feed.rss" rel="self" type="application/rss+xml"/><item><title>#2 compiling C &amp; C++ shared libraries</title><link>https://sourceforge.net/p/dmalloc/feature-requests/2/?limit=25#93da</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;This is old, but may be can help someone out there. &lt;br/&gt;
You can check &lt;a class="" href="https://rusya7.blogspot.fr/2016/01/dmalloc-compiling-and-installing.html" rel="nofollow"&gt;this&lt;/a&gt; for a fix for your problem&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ayoub</dc:creator><pubDate>Tue, 09 Jan 2018 15:37:56 -0000</pubDate><guid>https://sourceforge.net991bf76a2218041bb1c88a509e6d9301ff2aee5c</guid></item><item><title>compiling C &amp; C++ shared libraries</title><link>https://sourceforge.net/p/dmalloc/feature-requests/2/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I've having trouble building both the C &amp;amp; C++ shared libraries. I get this error:&lt;br /&gt;
[root@server ~]# tar xvfz dmalloc-5.5.2.tgz &lt;br /&gt;
dmalloc-5.5.2&lt;br /&gt;
dmalloc-5.5.2/contrib&lt;br /&gt;
dmalloc-5.5.2/docs&lt;br /&gt;
dmalloc-5.5.2/conf.h.in&lt;br /&gt;
dmalloc-5.5.2/configure&lt;br /&gt;
dmalloc-5.5.2/dmalloc.spec&lt;br /&gt;
dmalloc-5.5.2/mkinstalldirs&lt;br /&gt;
dmalloc-5.5.2/install-sh&lt;br /&gt;
dmalloc-5.5.2/dmallocc.cc&lt;br /&gt;
dmalloc-5.5.2/dmalloc_argv_loc.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc_argv.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc_argv.c&lt;br /&gt;
dmalloc-5.5.2/settings.dist&lt;br /&gt;
dmalloc-5.5.2/version.h&lt;br /&gt;
dmalloc-5.5.2/return.h&lt;br /&gt;
dmalloc-5.5.2/malloc_funcs.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc_fc_t.c&lt;br /&gt;
dmalloc-5.5.2/dmalloc_t.c&lt;br /&gt;
dmalloc-5.5.2/dmalloc_tab_loc.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc_tab.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc_tab.c&lt;br /&gt;
dmalloc-5.5.2/dmalloc_rand.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc.h.3&lt;br /&gt;
dmalloc-5.5.2/dmalloc_rand.c&lt;br /&gt;
dmalloc-5.5.2/dmalloc_loc.h&lt;br /&gt;
dmalloc-5.5.2/dmalloc.h.1&lt;br /&gt;
dmalloc-5.5.2/dmalloc.c&lt;br /&gt;
dmalloc-5.5.2/malloc.c&lt;br /&gt;
dmalloc-5.5.2/heap.h&lt;br /&gt;
dmalloc-5.5.2/heap.c&lt;br /&gt;
dmalloc-5.5.2/error_val.h&lt;br /&gt;
dmalloc-5.5.2/error.h&lt;br /&gt;
dmalloc-5.5.2/error.c&lt;br /&gt;
dmalloc-5.5.2/env.h&lt;br /&gt;
dmalloc-5.5.2/env.c&lt;br /&gt;
dmalloc-5.5.2/debug_tok.h&lt;br /&gt;
dmalloc-5.5.2/compat.h&lt;br /&gt;
dmalloc-5.5.2/compat.c&lt;br /&gt;
dmalloc-5.5.2/chunk_loc.h&lt;br /&gt;
dmalloc-5.5.2/chunk.h&lt;br /&gt;
dmalloc-5.5.2/chunk.c&lt;br /&gt;
dmalloc-5.5.2/arg_check.h&lt;br /&gt;
dmalloc-5.5.2/arg_check.c&lt;br /&gt;
dmalloc-5.5.2/dmallocrc&lt;br /&gt;
dmalloc-5.5.2/RELEASE.html&lt;br /&gt;
dmalloc-5.5.2/README&lt;br /&gt;
dmalloc-5.5.2/NEWS&lt;br /&gt;
dmalloc-5.5.2/INSTALL&lt;br /&gt;
dmalloc-5.5.2/ChangeLog.1&lt;br /&gt;
dmalloc-5.5.2/config.help&lt;br /&gt;
dmalloc-5.5.2/configure.ac&lt;br /&gt;
dmalloc-5.5.2/Makefile.in&lt;br /&gt;
dmalloc-5.5.2/docs/TODO&lt;br /&gt;
dmalloc-5.5.2/docs/NOTES&lt;br /&gt;
dmalloc-5.5.2/docs/Manifest&lt;br /&gt;
dmalloc-5.5.2/docs/dmalloc.pdf&lt;br /&gt;
dmalloc-5.5.2/docs/dmalloc.html&lt;br /&gt;
dmalloc-5.5.2/docs/dmalloc.texi&lt;br /&gt;
dmalloc-5.5.2/contrib/README&lt;br /&gt;
dmalloc-5.5.2/contrib/z_os_notes&lt;br /&gt;
dmalloc-5.5.2/contrib/tsecs&lt;br /&gt;
dmalloc-5.5.2/contrib/stratus_ftx_notes&lt;br /&gt;
dmalloc-5.5.2/contrib/ra_info.pl&lt;br /&gt;
dmalloc-5.5.2/contrib/next_notes&lt;br /&gt;
dmalloc-5.5.2/contrib/dmalloc_summarize.pl&lt;br /&gt;
dmalloc-5.5.2/contrib/dmalloc.gdb&lt;br /&gt;
dmalloc-5.5.2/contrib/dgux_notes&lt;br /&gt;
dmalloc-5.5.2/contrib/dec_notes&lt;br /&gt;
dmalloc-5.5.2/contrib/atexit.c&lt;br /&gt;
dmalloc-5.5.2/contrib/aix_notes&lt;br /&gt;
dmalloc-5.5.2/contrib/Xmalloc.c&lt;br /&gt;
dmalloc-5.5.2/contrib/aix_5l_notes&lt;br /&gt;
[root@server ~]# cd dmalloc-5.5.2&lt;br /&gt;
[root@server dmalloc-5.5.2]# CFLAGS=-fPIC&lt;br /&gt;
[root@server dmalloc-5.5.2]# export CFLAGS&lt;br /&gt;
[root@server dmalloc-5.5.2]# ./configure &lt;br /&gt;
configure: configurations for the dmalloc library&lt;br /&gt;
configure: build utilities&lt;br /&gt;
checking for gcc... gcc&lt;br /&gt;
checking for C compiler default output file name... a.out&lt;br /&gt;
checking whether the C compiler works... yes&lt;br /&gt;
checking whether we are cross compiling... no&lt;br /&gt;
checking for suffix of executables... &lt;br /&gt;
checking for suffix of object files... o&lt;br /&gt;
checking whether we are using the GNU C compiler... yes&lt;br /&gt;
checking whether gcc accepts -g... yes&lt;br /&gt;
checking for gcc option to accept ANSI C... none needed&lt;br /&gt;
checking for g++... g++&lt;br /&gt;
checking whether we are using the GNU C++ compiler... yes&lt;br /&gt;
checking whether g++ accepts -g... yes&lt;br /&gt;
configure: WARNING: could not find C++ compiler &lt;br /&gt;
checking for a BSD-compatible install... /usr/bin/install -c&lt;br /&gt;
checking for ranlib... ranlib&lt;br /&gt;
checking for an ANSI C-conforming const... yes&lt;br /&gt;
checking how to run the C preprocessor... gcc -E&lt;br /&gt;
checking for egrep... grep -E&lt;br /&gt;
checking for ANSI C header files... yes&lt;br /&gt;
checking for sys/types.h... yes&lt;br /&gt;
checking for sys/stat.h... yes&lt;br /&gt;
checking for stdlib.h... yes&lt;br /&gt;
checking for string.h... yes&lt;br /&gt;
checking for memory.h... yes&lt;br /&gt;
checking for strings.h... yes&lt;br /&gt;
checking for inttypes.h... yes&lt;br /&gt;
checking for stdint.h... yes&lt;br /&gt;
checking for unistd.h... yes&lt;br /&gt;
checking stdarg.h usability... yes&lt;br /&gt;
checking stdarg.h presence... yes&lt;br /&gt;
checking for stdarg.h... yes&lt;br /&gt;
checking for stdlib.h... (cached) yes&lt;br /&gt;
checking for string.h... (cached) yes&lt;br /&gt;
checking for unistd.h... (cached) yes&lt;br /&gt;
checking for sys/types.h... (cached) yes&lt;br /&gt;
checking sys/mman.h usability... yes&lt;br /&gt;
checking sys/mman.h presence... yes&lt;br /&gt;
checking for sys/mman.h... yes&lt;br /&gt;
checking shared library link args... ld -shared --whole-archive -soname $@ -o $@.t&lt;br /&gt;
checking shared library extension... so&lt;br /&gt;
checking C++ support... disabled&lt;br /&gt;
checking thread support... disabled&lt;br /&gt;
checking shlib support... disabled&lt;br /&gt;
checking for size_t... yes&lt;br /&gt;
checking dmalloc size unsigned... yes&lt;br /&gt;
checking strdup macro... no&lt;br /&gt;
checking for mprotect... yes&lt;br /&gt;
checking mprotect works... yes&lt;br /&gt;
configure: important functionality&lt;br /&gt;
checking for mmap... yes&lt;br /&gt;
checking for sbrk... yes&lt;br /&gt;
checking mmap usage... yes&lt;br /&gt;
checking for getpagesize... yes&lt;br /&gt;
checking basic-block size... 12&lt;br /&gt;
checking for long... yes&lt;br /&gt;
checking size of long... 8&lt;br /&gt;
checking data-alignment size... 8&lt;br /&gt;
checking for abort... yes&lt;br /&gt;
checking abort safe... yes&lt;br /&gt;
checking return type of signal handlers... void&lt;br /&gt;
checking signal works... checking signal.h usability... yes&lt;br /&gt;
checking signal.h presence... yes&lt;br /&gt;
checking for signal.h... yes&lt;br /&gt;
yes&lt;br /&gt;
checking for getenv... yes&lt;br /&gt;
checking getenv safe... yes&lt;br /&gt;
checking sys/cygwin.h usability... no&lt;br /&gt;
checking sys/cygwin.h presence... no&lt;br /&gt;
checking for sys/cygwin.h... no&lt;br /&gt;
checking w32api/windef.h usability... no&lt;br /&gt;
checking w32api/windef.h presence... no&lt;br /&gt;
checking for w32api/windef.h... no&lt;br /&gt;
checking for w32api/winbase.h... no&lt;br /&gt;
checking for GetEnvironmentVariableA... no&lt;br /&gt;
checking constructor attribute... yes&lt;br /&gt;
checking destructor attribute... yes&lt;br /&gt;
checking return.h macros work... yes&lt;br /&gt;
checking if ident works... yes&lt;br /&gt;
configure: pthread particulars&lt;br /&gt;
checking for library containing pthread_mutex_init... none required&lt;br /&gt;
checking pthread.h usability... yes&lt;br /&gt;
checking pthread.h presence... yes&lt;br /&gt;
checking for pthread.h... yes&lt;br /&gt;
checking pthreads.h usability... no&lt;br /&gt;
checking pthreads.h presence... no&lt;br /&gt;
checking for pthreads.h... no&lt;br /&gt;
checking for pthread_mutex_init... yes&lt;br /&gt;
checking for pthread_mutex_lock... yes&lt;br /&gt;
checking for pthread_mutex_unlock... yes&lt;br /&gt;
checking pthread mutex type... pthread_mutex_t&lt;br /&gt;
checking pthread attribute initialization... 0&lt;br /&gt;
configure: functions&lt;br /&gt;
checking for atexit... yes&lt;br /&gt;
checking for on_exit... yes&lt;br /&gt;
checking for fork... yes&lt;br /&gt;
checking for gethostname... yes&lt;br /&gt;
checking for getpid... yes&lt;br /&gt;
checking for getuid... yes&lt;br /&gt;
checking for time... yes&lt;br /&gt;
checking for ctime... yes&lt;br /&gt;
checking for vprintf... yes&lt;br /&gt;
checking for snprintf... yes&lt;br /&gt;
checking for vsnprintf... yes&lt;br /&gt;
checking for recalloc... no&lt;br /&gt;
checking for memalign... yes&lt;br /&gt;
checking for valloc... yes&lt;br /&gt;
checking for memcmp... yes&lt;br /&gt;
checking for memcpy... yes&lt;br /&gt;
checking for memmove... yes&lt;br /&gt;
checking for memset... yes&lt;br /&gt;
checking for strchr... yes&lt;br /&gt;
checking for strrchr... yes&lt;br /&gt;
checking for strlen... yes&lt;br /&gt;
checking for strcmp... yes&lt;br /&gt;
checking for strcpy... yes&lt;br /&gt;
checking for strsep... yes&lt;br /&gt;
configure: various functions for argv files&lt;br /&gt;
checking for atoi... yes&lt;br /&gt;
checking for atol... yes&lt;br /&gt;
checking for getenv... (cached) yes&lt;br /&gt;
checking for strchr... (cached) yes&lt;br /&gt;
checking for strcmp... (cached) yes&lt;br /&gt;
checking for strcpy... (cached) yes&lt;br /&gt;
checking for strlen... (cached) yes&lt;br /&gt;
checking for strncmp... yes&lt;br /&gt;
checking for strncpy... yes&lt;br /&gt;
checking for strsep... (cached) yes&lt;br /&gt;
configure: various functions for argument checking&lt;br /&gt;
checking for atoi... (cached) yes&lt;br /&gt;
checking for atol... (cached) yes&lt;br /&gt;
checking for bcmp... yes&lt;br /&gt;
checking for bcopy... yes&lt;br /&gt;
checking for bzero... yes&lt;br /&gt;
checking for index... yes&lt;br /&gt;
checking for memccpy... yes&lt;br /&gt;
checking for memchr... yes&lt;br /&gt;
checking for memcmp... (cached) yes&lt;br /&gt;
checking for memcpy... (cached) yes&lt;br /&gt;
checking for memmove... (cached) yes&lt;br /&gt;
checking for memset... (cached) yes&lt;br /&gt;
checking for rindex... yes&lt;br /&gt;
checking for strcasecmp... yes&lt;br /&gt;
checking for strcat... yes&lt;br /&gt;
checking for strchr... (cached) yes&lt;br /&gt;
checking for strcmp... (cached) yes&lt;br /&gt;
checking for strcpy... (cached) yes&lt;br /&gt;
checking for strcspn... yes&lt;br /&gt;
checking for strlen... (cached) yes&lt;br /&gt;
checking for strncasecmp... yes&lt;br /&gt;
checking for strncat... yes&lt;br /&gt;
checking for strncmp... (cached) yes&lt;br /&gt;
checking for strncpy... (cached) yes&lt;br /&gt;
checking for strpbrk... yes&lt;br /&gt;
checking for strrchr... (cached) yes&lt;br /&gt;
checking for strspn... yes&lt;br /&gt;
checking for strstr... yes&lt;br /&gt;
checking for strtok... yes&lt;br /&gt;
configure: creating ./config.status&lt;br /&gt;
config.status: creating Makefile&lt;br /&gt;
config.status: creating conf.h&lt;br /&gt;
config.status: executing dmalloc.h.2 commands&lt;br /&gt;
config.status: executing settings.h commands&lt;br /&gt;
configure: &lt;br /&gt;
configure: Please check-out Makefile and conf.h to make sure that&lt;br /&gt;
configure: sane configuration values were a result.&lt;br /&gt;
configure: &lt;br /&gt;
configure: You may want to change values in settings.h before&lt;br /&gt;
configure: running 'make'.&lt;br /&gt;
configure: &lt;br /&gt;
configure: To run the basic library tests, you can execute:&lt;br /&gt;
configure:   make light&lt;br /&gt;
configure: or&lt;br /&gt;
configure:   make heavy&lt;br /&gt;
configure: &lt;br /&gt;
[root@server dmalloc-5.5.2]# make&lt;br /&gt;
rm -f dmalloc.h dmalloc.h.t&lt;br /&gt;
cat ./dmalloc.h.1 dmalloc.h.2 ./dmalloc.h.3 &amp;gt; dmalloc.h.t&lt;br /&gt;
mv dmalloc.h.t dmalloc.h&lt;br /&gt;
rm -f arg_check.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c arg_check.c -o ./arg_check.o&lt;br /&gt;
rm -f compat.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c compat.c -o ./compat.o&lt;br /&gt;
rm -f dmalloc_rand.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c dmalloc_rand.c -o ./dmalloc_rand.o&lt;br /&gt;
rm -f dmalloc_tab.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c dmalloc_tab.c -o ./dmalloc_tab.o&lt;br /&gt;
rm -f env.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c env.c -o ./env.o&lt;br /&gt;
rm -f heap.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c heap.c -o ./heap.o&lt;br /&gt;
rm -f chunk.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c chunk.c -o ./chunk.o&lt;br /&gt;
rm -f error.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c error.c -o ./error.o&lt;br /&gt;
rm -f malloc.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c malloc.c -o ./malloc.o&lt;br /&gt;
ar cr libdmalloc.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk.o error.o malloc.o&lt;br /&gt;
ranlib libdmalloc.a&lt;br /&gt;
rm -f dmalloc.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c dmalloc.c -o ./dmalloc.o&lt;br /&gt;
rm -f dmalloc_argv.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c dmalloc_argv.c -o ./dmalloc_argv.o&lt;br /&gt;
rm -f dmalloc&lt;br /&gt;
gcc  -o aout dmalloc.o dmalloc_argv.o compat.o env.o \
-L. &lt;br /&gt;
mv aout dmalloc&lt;br /&gt;
To make the thread version of the library type 'make threads'&lt;br /&gt;
To make the C++ version of the library type 'make cxx'&lt;br /&gt;
To make the shared version of the library type 'make shlib'&lt;br /&gt;
[root@server dmalloc-5.5.2]# make cxx&lt;br /&gt;
rm -f dmallocc.o&lt;br /&gt;
g++ -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -c ./dmallocc.cc \
-o ./dmallocc.o&lt;br /&gt;
ar cr libdmallocxx.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk.o error.o malloc.o dmallocc.o&lt;br /&gt;
ranlib libdmallocxx.a&lt;br /&gt;
Enter 'make cxxsl' to build the cxx shared library&lt;br /&gt;
[root@server dmalloc-5.5.2]# make threads&lt;br /&gt;
rm -f chunk_th.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -DLOCK_THREADS=1 \
-c ./chunk.c -o ./chunk_th.o&lt;br /&gt;
rm -f error_th.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -DLOCK_THREADS=1 \
-c ./error.c -o ./error_th.o&lt;br /&gt;
rm -f malloc_th.o&lt;br /&gt;
gcc -fPIC  -DHAVE_STDARG_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_W32API_WINBASE_H=0 -DHAVE_W32API_WINDEF_H=0 -DHAVE_SYS_CYGWIN_H=0 -DHAVE_SIGNAL_H=1  -I. -I.  -DLOCK_THREADS=1 \
-c ./malloc.c -o ./malloc_th.o&lt;br /&gt;
ar cr libdmallocth.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk_th.o error_th.o malloc_th.o&lt;br /&gt;
ranlib libdmallocth.a&lt;br /&gt;
Enter 'make threadscxx' to build the threaded C++ library&lt;br /&gt;
Enter 'make threadssl' to build the threaded shared library&lt;br /&gt;
[root@server dmalloc-5.5.2]# make threadscxx&lt;br /&gt;
ar cr libdmallocthcxx.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk_th.o error_th.o malloc_th.o dmallocc.o&lt;br /&gt;
ranlib libdmallocthcxx.a&lt;br /&gt;
Enter 'make threadscxxsl' to build the threaded C++ shared-library&lt;br /&gt;
[root@server dmalloc-5.5.2]# make shlib&lt;br /&gt;
rm -f libdmalloc.so libdmalloc.so.t&lt;br /&gt;
ld -shared --whole-archive -soname libdmalloc.so -o libdmalloc.so.t libdmalloc.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk.o error.o malloc.o&lt;br /&gt;
arg_check.o: In function `_dmalloc_atoi':&lt;br /&gt;
arg_check.c:(.text+0x8c): multiple definition of `_dmalloc_atoi'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x8c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_atol':&lt;br /&gt;
arg_check.c:(.text+0xf4): multiple definition of `_dmalloc_atol'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xf4): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_bcmp':&lt;br /&gt;
arg_check.c:(.text+0x15c): multiple definition of `_dmalloc_bcmp'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x15c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_bcopy':&lt;br /&gt;
arg_check.c:(.text+0x22a): multiple definition of `_dmalloc_bcopy'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x22a): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_bzero':&lt;br /&gt;
arg_check.c:(.text+0x2cb): multiple definition of `_dmalloc_bzero'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x2cb): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_index':&lt;br /&gt;
arg_check.c:(.text+0x345): multiple definition of `_dmalloc_index'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x345): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memccpy':&lt;br /&gt;
arg_check.c:(.text+0x3b4): multiple definition of `_dmalloc_memccpy'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x3b4): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memchr':&lt;br /&gt;
arg_check.c:(.text+0x4a7): multiple definition of `_dmalloc_memchr'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x4a7): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memcmp':&lt;br /&gt;
arg_check.c:(.text+0x51e): multiple definition of `_dmalloc_memcmp'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x51e): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memcpy':&lt;br /&gt;
arg_check.c:(.text+0x5ec): multiple definition of `_dmalloc_memcpy'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x5ec): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memmove':&lt;br /&gt;
arg_check.c:(.text+0x6f5): multiple definition of `_dmalloc_memmove'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x6f5): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memset':&lt;br /&gt;
arg_check.c:(.text+0x796): multiple definition of `_dmalloc_memset'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x796): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_rindex':&lt;br /&gt;
arg_check.c:(.text+0x80d): multiple definition of `_dmalloc_rindex'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x80d): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcasecmp':&lt;br /&gt;
arg_check.c:(.text+0x87c): multiple definition of `_dmalloc_strcasecmp'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x87c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcat':&lt;br /&gt;
arg_check.c:(.text+0x913): multiple definition of `_dmalloc_strcat'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x913): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strchr':&lt;br /&gt;
arg_check.c:(.text+0x9e7): multiple definition of `_dmalloc_strchr'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x9e7): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcmp':&lt;br /&gt;
arg_check.c:(.text+0xa55): multiple definition of `_dmalloc_strcmp'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xa55): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcpy':&lt;br /&gt;
arg_check.c:(.text+0xaec): multiple definition of `_dmalloc_strcpy'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xaec): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcspn':&lt;br /&gt;
arg_check.c:(.text+0xb9a): multiple definition of `_dmalloc_strcspn'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xb9a): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strlen':&lt;br /&gt;
arg_check.c:(.text+0xc31): multiple definition of `_dmalloc_strlen'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xc31): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncasecmp':&lt;br /&gt;
arg_check.c:(.text+0xca9): multiple definition of `_dmalloc_strncasecmp'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xca9): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncat':&lt;br /&gt;
arg_check.c:(.text+0xda6): multiple definition of `_dmalloc_strncat'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xda6): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncmp':&lt;br /&gt;
arg_check.c:(.text+0xe9e): multiple definition of `_dmalloc_strncmp'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xe9e): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncpy':&lt;br /&gt;
arg_check.c:(.text+0xf9b): multiple definition of `_dmalloc_strncpy'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0xf9b): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strpbrk':&lt;br /&gt;
arg_check.c:(.text+0x1080): multiple definition of `_dmalloc_strpbrk'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x1080): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strrchr':&lt;br /&gt;
arg_check.c:(.text+0x1117): multiple definition of `_dmalloc_strrchr'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x1117): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strspn':&lt;br /&gt;
arg_check.c:(.text+0x1185): multiple definition of `_dmalloc_strspn'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x1185): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strstr':&lt;br /&gt;
arg_check.c:(.text+0x121c): multiple definition of `_dmalloc_strstr'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x121c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strtok':&lt;br /&gt;
arg_check.c:(.text+0x12b3): multiple definition of `_dmalloc_strtok'&lt;br /&gt;
libdmalloc.a(arg_check.o):arg_check.c:(.text+0x12b3): first defined here&lt;br /&gt;
compat.o: In function `loc_atoul':&lt;br /&gt;
compat.c:(.text+0x0): multiple definition of `loc_atoul'&lt;br /&gt;
libdmalloc.a(compat.o):compat.c:(.text+0x0): first defined here&lt;br /&gt;
compat.o: In function `loc_vsnprintf':&lt;br /&gt;
compat.c:(.text+0x83): multiple definition of `loc_vsnprintf'&lt;br /&gt;
libdmalloc.a(compat.o):compat.c:(.text+0x83): first defined here&lt;br /&gt;
compat.o: In function `loc_snprintf':&lt;br /&gt;
compat.c:(.text+0xdd): multiple definition of `loc_snprintf'&lt;br /&gt;
libdmalloc.a(compat.o):compat.c:(.text+0xdd): first defined here&lt;br /&gt;
dmalloc_rand.o: In function `_dmalloc_srand':&lt;br /&gt;
dmalloc_rand.c:(.text+0x1a): multiple definition of `_dmalloc_srand'&lt;br /&gt;
libdmalloc.a(dmalloc_rand.o):dmalloc_rand.c:(.text+0x1a): first defined here&lt;br /&gt;
dmalloc_rand.o: In function `_dmalloc_rand':&lt;br /&gt;
dmalloc_rand.c:(.text+0x2f): multiple definition of `_dmalloc_rand'&lt;br /&gt;
libdmalloc.a(dmalloc_rand.o):dmalloc_rand.c:(.text+0x2f): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_clear':&lt;br /&gt;
dmalloc_tab.c:(.text+0xa55): multiple definition of `_dmalloc_table_clear'&lt;br /&gt;
libdmalloc.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xa55): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_insert':&lt;br /&gt;
dmalloc_tab.c:(.text+0xaa7): multiple definition of `_dmalloc_table_insert'&lt;br /&gt;
libdmalloc.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xaa7): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_delete':&lt;br /&gt;
dmalloc_tab.c:(.text+0xc14): multiple definition of `_dmalloc_table_delete'&lt;br /&gt;
libdmalloc.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xc14): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_log_info':&lt;br /&gt;
dmalloc_tab.c:(.text+0xd3e): multiple definition of `_dmalloc_table_log_info'&lt;br /&gt;
libdmalloc.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xd3e): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_address_break':&lt;br /&gt;
env.c:(.text+0x117): multiple definition of `_dmalloc_address_break'&lt;br /&gt;
libdmalloc.a(env.o):env.c:(.text+0x117): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_start_break':&lt;br /&gt;
env.c:(.text+0x17e): multiple definition of `_dmalloc_start_break'&lt;br /&gt;
libdmalloc.a(env.o):env.c:(.text+0x17e): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_environ_process':&lt;br /&gt;
env.c:(.text+0x33b): multiple definition of `_dmalloc_environ_process'&lt;br /&gt;
libdmalloc.a(env.o):env.c:(.text+0x33b): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_environ_set':&lt;br /&gt;
env.c:(.text+0xab3): multiple definition of `_dmalloc_environ_set'&lt;br /&gt;
libdmalloc.a(env.o):env.c:(.text+0xab3): first defined here&lt;br /&gt;
heap.o:(.bss+0x0): multiple definition of `_dmalloc_heap_low'&lt;br /&gt;
libdmalloc.a(heap.o):(.bss+0x0): first defined here&lt;br /&gt;
heap.o:(.bss+0x8): multiple definition of `_dmalloc_heap_high'&lt;br /&gt;
libdmalloc.a(heap.o):(.bss+0x8): first defined here&lt;br /&gt;
heap.o: In function `_dmalloc_heap_startup':&lt;br /&gt;
heap.c:(.text+0x16b): multiple definition of `_dmalloc_heap_startup'&lt;br /&gt;
libdmalloc.a(heap.o):heap.c:(.text+0x16b): first defined here&lt;br /&gt;
heap.o: In function `_dmalloc_heap_alloc':&lt;br /&gt;
heap.c:(.text+0x176): multiple definition of `_dmalloc_heap_alloc'&lt;br /&gt;
libdmalloc.a(heap.o):heap.c:(.text+0x176): first defined here&lt;br /&gt;
chunk.o:(.bss+0x0): multiple definition of `_dmalloc_memory_limit'&lt;br /&gt;
libdmalloc.a(chunk.o):(.bss+0x0): first defined here&lt;br /&gt;
chunk.o:(.bss+0x8): multiple definition of `_dmalloc_alloc_total'&lt;br /&gt;
libdmalloc.a(chunk.o):(.bss+0x8): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_desc_pnt':&lt;br /&gt;
chunk.c:(.text+0x1e59): multiple definition of `_dmalloc_chunk_desc_pnt'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x1e59): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_startup':&lt;br /&gt;
chunk.c:(.text+0x1d18): multiple definition of `_dmalloc_chunk_startup'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x1d18): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_read_info':&lt;br /&gt;
chunk.c:(.text+0x1f11): multiple definition of `_dmalloc_chunk_read_info'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x1f11): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_heap_check':&lt;br /&gt;
chunk.c:(.text+0x212d): multiple definition of `_dmalloc_chunk_heap_check'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x212d): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_pnt_check':&lt;br /&gt;
chunk.c:(.text+0x256c): multiple definition of `_dmalloc_chunk_pnt_check'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x256c): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_malloc':&lt;br /&gt;
chunk.c:(.text+0x269a): multiple definition of `_dmalloc_chunk_malloc'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x269a): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_free':&lt;br /&gt;
chunk.c:(.text+0x2b02): multiple definition of `_dmalloc_chunk_free'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x2b02): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_realloc':&lt;br /&gt;
chunk.c:(.text+0x3041): multiple definition of `_dmalloc_chunk_realloc'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x3041): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_log_stats':&lt;br /&gt;
chunk.c:(.text+0x34c5): multiple definition of `_dmalloc_chunk_log_stats'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x34c5): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_log_changed':&lt;br /&gt;
chunk.c:(.text+0x3845): multiple definition of `_dmalloc_chunk_log_changed'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x3845): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_count_changed':&lt;br /&gt;
chunk.c:(.text+0x3c8f): multiple definition of `_dmalloc_chunk_count_changed'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x3c8f): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_get_stats':&lt;br /&gt;
chunk.c:(.text+0x3d76): multiple definition of `_dmalloc_chunk_get_stats'&lt;br /&gt;
libdmalloc.a(chunk.o):chunk.c:(.text+0x3d76): first defined here&lt;br /&gt;
error.o:(.bss+0x0): multiple definition of `_dmalloc_address'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x0): first defined here&lt;br /&gt;
error.o:(.bss+0x8): multiple definition of `_dmalloc_address_seen_n'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x8): first defined here&lt;br /&gt;
error.o:(.bss+0x10): multiple definition of `_dmalloc_flags'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x10): first defined here&lt;br /&gt;
error.o:(.bss+0x18): multiple definition of `_dmalloc_iter_c'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x18): first defined here&lt;br /&gt;
error.o:(.bss+0x20): multiple definition of `_dmalloc_check_interval'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x20): first defined here&lt;br /&gt;
error.o:(.bss+0x28): multiple definition of `_dmalloc_start'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x28): first defined here&lt;br /&gt;
error.o:(.bss+0x2c): multiple definition of `_dmalloc_lock_on'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x2c): first defined here&lt;br /&gt;
error.o:(.bss+0x30): multiple definition of `_dmalloc_aborting_b'&lt;br /&gt;
libdmalloc.a(error.o):(.bss+0x30): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_open_log':&lt;br /&gt;
error.c:(.text+0x290): multiple definition of `_dmalloc_open_log'&lt;br /&gt;
libdmalloc.a(error.o):error.c:(.text+0x290): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_ptime':&lt;br /&gt;
error.c:(.text+0x481): multiple definition of `_dmalloc_ptime'&lt;br /&gt;
libdmalloc.a(error.o):error.c:(.text+0x481): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_reopen_log':&lt;br /&gt;
error.c:(.text+0x41f): multiple definition of `_dmalloc_reopen_log'&lt;br /&gt;
libdmalloc.a(error.o):error.c:(.text+0x41f): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_vmessage':&lt;br /&gt;
error.c:(.text+0x5d7): multiple definition of `_dmalloc_vmessage'&lt;br /&gt;
libdmalloc.a(error.o):error.c:(.text+0x5d7): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_die':&lt;br /&gt;
error.c:(.text+0x801): multiple definition of `_dmalloc_die'&lt;br /&gt;
libdmalloc.a(error.o):error.c:(.text+0x801): first defined here&lt;br /&gt;
error.o: In function `dmalloc_error':&lt;br /&gt;
error.c:(.text+0x91e): multiple definition of `dmalloc_error'&lt;br /&gt;
libdmalloc.a(error.o):error.c:(.text+0x91e): first defined here&lt;br /&gt;
malloc.o:(.data+0x0): multiple definition of `dmalloc_errno'&lt;br /&gt;
libdmalloc.a(malloc.o):(.data+0x0): first defined here&lt;br /&gt;
malloc.o:(.bss+0x0): multiple definition of `dmalloc_logpath'&lt;br /&gt;
libdmalloc.a(malloc.o):(.bss+0x0): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_message':&lt;br /&gt;
malloc.c:(.text+0x16fe): multiple definition of `dmalloc_message'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x16fe): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_shutdown':&lt;br /&gt;
malloc.c:(.text+0x5d5): multiple definition of `dmalloc_shutdown'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x5d5): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_malloc':&lt;br /&gt;
malloc.c:(.text+0x702): multiple definition of `dmalloc_malloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x702): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_realloc':&lt;br /&gt;
malloc.c:(.text+0x967): multiple definition of `dmalloc_realloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x967): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_free':&lt;br /&gt;
malloc.c:(.text+0xc0a): multiple definition of `dmalloc_free'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xc0a): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_strndup':&lt;br /&gt;
malloc.c:(.text+0xcf1): multiple definition of `dmalloc_strndup'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xcf1): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_verify_pnt_strsize':&lt;br /&gt;
malloc.c:(.text+0x1259): multiple definition of `dmalloc_verify_pnt_strsize'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1259): first defined here&lt;br /&gt;
malloc.o: In function `malloc':&lt;br /&gt;
malloc.c:(.text+0xe16): multiple definition of `malloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xe16): first defined here&lt;br /&gt;
malloc.o: In function `calloc':&lt;br /&gt;
malloc.c:(.text+0xe4f): multiple definition of `calloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xe4f): first defined here&lt;br /&gt;
malloc.o: In function `realloc':&lt;br /&gt;
malloc.c:(.text+0xe99): multiple definition of `realloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xe99): first defined here&lt;br /&gt;
malloc.o: In function `recalloc':&lt;br /&gt;
malloc.c:(.text+0xed5): multiple definition of `recalloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xed5): first defined here&lt;br /&gt;
malloc.o: In function `memalign':&lt;br /&gt;
malloc.c:(.text+0xf11): multiple definition of `memalign'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xf11): first defined here&lt;br /&gt;
malloc.o: In function `valloc':&lt;br /&gt;
malloc.c:(.text+0xf4f): multiple definition of `valloc'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xf4f): first defined here&lt;br /&gt;
malloc.o: In function `strdup':&lt;br /&gt;
malloc.c:(.text+0xf88): multiple definition of `strdup'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0xf88): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_verify_pnt':&lt;br /&gt;
malloc.c:(.text+0x12d0): multiple definition of `dmalloc_verify_pnt'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x12d0): first defined here&lt;br /&gt;
malloc.o: In function `strndup':&lt;br /&gt;
malloc.c:(.text+0x1060): multiple definition of `strndup'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1060): first defined here&lt;br /&gt;
malloc.o: In function `free':&lt;br /&gt;
malloc.c:(.text+0x1161): multiple definition of `free'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1161): first defined here&lt;br /&gt;
malloc.o: In function `cfree':&lt;br /&gt;
malloc.c:(.text+0x1191): multiple definition of `cfree'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1191): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_verify':&lt;br /&gt;
malloc.c:(.text+0x11c1): multiple definition of `dmalloc_verify'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x11c1): first defined here&lt;br /&gt;
malloc.o: In function `malloc_verify':&lt;br /&gt;
malloc.c:(.text+0x1242): multiple definition of `malloc_verify'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1242): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_debug':&lt;br /&gt;
malloc.c:(.text+0x1357): multiple definition of `dmalloc_debug'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1357): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_debug_current':&lt;br /&gt;
malloc.c:(.text+0x1393): multiple definition of `dmalloc_debug_current'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1393): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_debug_setup':&lt;br /&gt;
malloc.c:(.text+0x13b6): multiple definition of `dmalloc_debug_setup'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x13b6): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_examine':&lt;br /&gt;
malloc.c:(.text+0x13ff): multiple definition of `dmalloc_examine'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x13ff): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_track':&lt;br /&gt;
malloc.c:(.text+0x1519): multiple definition of `dmalloc_track'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1519): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_mark':&lt;br /&gt;
malloc.c:(.text+0x152e): multiple definition of `dmalloc_mark'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x152e): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_memory_allocated':&lt;br /&gt;
malloc.c:(.text+0x1552): multiple definition of `dmalloc_memory_allocated'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1552): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_page_size':&lt;br /&gt;
malloc.c:(.text+0x1576): multiple definition of `dmalloc_page_size'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1576): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_count_changed':&lt;br /&gt;
malloc.c:(.text+0x1595): multiple definition of `dmalloc_count_changed'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1595): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_log_stats':&lt;br /&gt;
malloc.c:(.text+0x1614): multiple definition of `dmalloc_log_stats'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1614): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_log_unfreed':&lt;br /&gt;
malloc.c:(.text+0x163c): multiple definition of `dmalloc_log_unfreed'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x163c): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_log_changed':&lt;br /&gt;
malloc.c:(.text+0x1699): multiple definition of `dmalloc_log_changed'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x1699): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_vmessage':&lt;br /&gt;
malloc.c:(.text+0x16df): multiple definition of `dmalloc_vmessage'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x16df): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_get_stats':&lt;br /&gt;
malloc.c:(.text+0x17df): multiple definition of `dmalloc_get_stats'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x17df): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_strerror':&lt;br /&gt;
malloc.c:(.text+0x184a): multiple definition of `dmalloc_strerror'&lt;br /&gt;
libdmalloc.a(malloc.o):malloc.c:(.text+0x184a): first defined here&lt;br /&gt;
make: *** [libdmalloc.so] Error 1&lt;br /&gt;
[root@server dmalloc-5.5.2]# make cxxsl&lt;br /&gt;
rm -f libdmallocxx.so libdmallocxx.so.t&lt;br /&gt;
ld -shared --whole-archive -soname libdmallocxx.so -o libdmallocxx.so.t libdmallocxx.a arg_check.o compat.o dmalloc_rand.o dmalloc_tab.o env.o heap.o chunk.o error.o malloc.o dmallocc.o&lt;br /&gt;
arg_check.o: In function `_dmalloc_atoi':&lt;br /&gt;
arg_check.c:(.text+0x8c): multiple definition of `_dmalloc_atoi'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x8c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_atol':&lt;br /&gt;
arg_check.c:(.text+0xf4): multiple definition of `_dmalloc_atol'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xf4): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_bcmp':&lt;br /&gt;
arg_check.c:(.text+0x15c): multiple definition of `_dmalloc_bcmp'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x15c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_bcopy':&lt;br /&gt;
arg_check.c:(.text+0x22a): multiple definition of `_dmalloc_bcopy'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x22a): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_bzero':&lt;br /&gt;
arg_check.c:(.text+0x2cb): multiple definition of `_dmalloc_bzero'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x2cb): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_index':&lt;br /&gt;
arg_check.c:(.text+0x345): multiple definition of `_dmalloc_index'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x345): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memccpy':&lt;br /&gt;
arg_check.c:(.text+0x3b4): multiple definition of `_dmalloc_memccpy'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x3b4): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memchr':&lt;br /&gt;
arg_check.c:(.text+0x4a7): multiple definition of `_dmalloc_memchr'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x4a7): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memcmp':&lt;br /&gt;
arg_check.c:(.text+0x51e): multiple definition of `_dmalloc_memcmp'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x51e): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memcpy':&lt;br /&gt;
arg_check.c:(.text+0x5ec): multiple definition of `_dmalloc_memcpy'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x5ec): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memmove':&lt;br /&gt;
arg_check.c:(.text+0x6f5): multiple definition of `_dmalloc_memmove'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x6f5): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_memset':&lt;br /&gt;
arg_check.c:(.text+0x796): multiple definition of `_dmalloc_memset'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x796): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_rindex':&lt;br /&gt;
arg_check.c:(.text+0x80d): multiple definition of `_dmalloc_rindex'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x80d): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcasecmp':&lt;br /&gt;
arg_check.c:(.text+0x87c): multiple definition of `_dmalloc_strcasecmp'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x87c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcat':&lt;br /&gt;
arg_check.c:(.text+0x913): multiple definition of `_dmalloc_strcat'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x913): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strchr':&lt;br /&gt;
arg_check.c:(.text+0x9e7): multiple definition of `_dmalloc_strchr'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x9e7): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcmp':&lt;br /&gt;
arg_check.c:(.text+0xa55): multiple definition of `_dmalloc_strcmp'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xa55): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcpy':&lt;br /&gt;
arg_check.c:(.text+0xaec): multiple definition of `_dmalloc_strcpy'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xaec): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strcspn':&lt;br /&gt;
arg_check.c:(.text+0xb9a): multiple definition of `_dmalloc_strcspn'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xb9a): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strlen':&lt;br /&gt;
arg_check.c:(.text+0xc31): multiple definition of `_dmalloc_strlen'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xc31): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncasecmp':&lt;br /&gt;
arg_check.c:(.text+0xca9): multiple definition of `_dmalloc_strncasecmp'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xca9): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncat':&lt;br /&gt;
arg_check.c:(.text+0xda6): multiple definition of `_dmalloc_strncat'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xda6): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncmp':&lt;br /&gt;
arg_check.c:(.text+0xe9e): multiple definition of `_dmalloc_strncmp'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xe9e): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strncpy':&lt;br /&gt;
arg_check.c:(.text+0xf9b): multiple definition of `_dmalloc_strncpy'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0xf9b): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strpbrk':&lt;br /&gt;
arg_check.c:(.text+0x1080): multiple definition of `_dmalloc_strpbrk'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x1080): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strrchr':&lt;br /&gt;
arg_check.c:(.text+0x1117): multiple definition of `_dmalloc_strrchr'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x1117): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strspn':&lt;br /&gt;
arg_check.c:(.text+0x1185): multiple definition of `_dmalloc_strspn'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x1185): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strstr':&lt;br /&gt;
arg_check.c:(.text+0x121c): multiple definition of `_dmalloc_strstr'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x121c): first defined here&lt;br /&gt;
arg_check.o: In function `_dmalloc_strtok':&lt;br /&gt;
arg_check.c:(.text+0x12b3): multiple definition of `_dmalloc_strtok'&lt;br /&gt;
libdmallocxx.a(arg_check.o):arg_check.c:(.text+0x12b3): first defined here&lt;br /&gt;
compat.o: In function `loc_atoul':&lt;br /&gt;
compat.c:(.text+0x0): multiple definition of `loc_atoul'&lt;br /&gt;
libdmallocxx.a(compat.o):compat.c:(.text+0x0): first defined here&lt;br /&gt;
compat.o: In function `loc_vsnprintf':&lt;br /&gt;
compat.c:(.text+0x83): multiple definition of `loc_vsnprintf'&lt;br /&gt;
libdmallocxx.a(compat.o):compat.c:(.text+0x83): first defined here&lt;br /&gt;
compat.o: In function `loc_snprintf':&lt;br /&gt;
compat.c:(.text+0xdd): multiple definition of `loc_snprintf'&lt;br /&gt;
libdmallocxx.a(compat.o):compat.c:(.text+0xdd): first defined here&lt;br /&gt;
dmalloc_rand.o: In function `_dmalloc_srand':&lt;br /&gt;
dmalloc_rand.c:(.text+0x1a): multiple definition of `_dmalloc_srand'&lt;br /&gt;
libdmallocxx.a(dmalloc_rand.o):dmalloc_rand.c:(.text+0x1a): first defined here&lt;br /&gt;
dmalloc_rand.o: In function `_dmalloc_rand':&lt;br /&gt;
dmalloc_rand.c:(.text+0x2f): multiple definition of `_dmalloc_rand'&lt;br /&gt;
libdmallocxx.a(dmalloc_rand.o):dmalloc_rand.c:(.text+0x2f): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_clear':&lt;br /&gt;
dmalloc_tab.c:(.text+0xa55): multiple definition of `_dmalloc_table_clear'&lt;br /&gt;
libdmallocxx.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xa55): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_insert':&lt;br /&gt;
dmalloc_tab.c:(.text+0xaa7): multiple definition of `_dmalloc_table_insert'&lt;br /&gt;
libdmallocxx.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xaa7): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_delete':&lt;br /&gt;
dmalloc_tab.c:(.text+0xc14): multiple definition of `_dmalloc_table_delete'&lt;br /&gt;
libdmallocxx.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xc14): first defined here&lt;br /&gt;
dmalloc_tab.o: In function `_dmalloc_table_log_info':&lt;br /&gt;
dmalloc_tab.c:(.text+0xd3e): multiple definition of `_dmalloc_table_log_info'&lt;br /&gt;
libdmallocxx.a(dmalloc_tab.o):dmalloc_tab.c:(.text+0xd3e): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_address_break':&lt;br /&gt;
env.c:(.text+0x117): multiple definition of `_dmalloc_address_break'&lt;br /&gt;
libdmallocxx.a(env.o):env.c:(.text+0x117): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_start_break':&lt;br /&gt;
env.c:(.text+0x17e): multiple definition of `_dmalloc_start_break'&lt;br /&gt;
libdmallocxx.a(env.o):env.c:(.text+0x17e): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_environ_process':&lt;br /&gt;
env.c:(.text+0x33b): multiple definition of `_dmalloc_environ_process'&lt;br /&gt;
libdmallocxx.a(env.o):env.c:(.text+0x33b): first defined here&lt;br /&gt;
env.o: In function `_dmalloc_environ_set':&lt;br /&gt;
env.c:(.text+0xab3): multiple definition of `_dmalloc_environ_set'&lt;br /&gt;
libdmallocxx.a(env.o):env.c:(.text+0xab3): first defined here&lt;br /&gt;
heap.o:(.bss+0x0): multiple definition of `_dmalloc_heap_low'&lt;br /&gt;
libdmallocxx.a(heap.o):(.bss+0x0): first defined here&lt;br /&gt;
heap.o:(.bss+0x8): multiple definition of `_dmalloc_heap_high'&lt;br /&gt;
libdmallocxx.a(heap.o):(.bss+0x8): first defined here&lt;br /&gt;
heap.o: In function `_dmalloc_heap_startup':&lt;br /&gt;
heap.c:(.text+0x16b): multiple definition of `_dmalloc_heap_startup'&lt;br /&gt;
libdmallocxx.a(heap.o):heap.c:(.text+0x16b): first defined here&lt;br /&gt;
heap.o: In function `_dmalloc_heap_alloc':&lt;br /&gt;
heap.c:(.text+0x176): multiple definition of `_dmalloc_heap_alloc'&lt;br /&gt;
libdmallocxx.a(heap.o):heap.c:(.text+0x176): first defined here&lt;br /&gt;
chunk.o:(.bss+0x0): multiple definition of `_dmalloc_memory_limit'&lt;br /&gt;
libdmallocxx.a(chunk.o):(.bss+0x0): first defined here&lt;br /&gt;
chunk.o:(.bss+0x8): multiple definition of `_dmalloc_alloc_total'&lt;br /&gt;
libdmallocxx.a(chunk.o):(.bss+0x8): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_desc_pnt':&lt;br /&gt;
chunk.c:(.text+0x1e59): multiple definition of `_dmalloc_chunk_desc_pnt'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x1e59): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_startup':&lt;br /&gt;
chunk.c:(.text+0x1d18): multiple definition of `_dmalloc_chunk_startup'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x1d18): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_read_info':&lt;br /&gt;
chunk.c:(.text+0x1f11): multiple definition of `_dmalloc_chunk_read_info'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x1f11): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_heap_check':&lt;br /&gt;
chunk.c:(.text+0x212d): multiple definition of `_dmalloc_chunk_heap_check'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x212d): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_pnt_check':&lt;br /&gt;
chunk.c:(.text+0x256c): multiple definition of `_dmalloc_chunk_pnt_check'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x256c): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_malloc':&lt;br /&gt;
chunk.c:(.text+0x269a): multiple definition of `_dmalloc_chunk_malloc'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x269a): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_free':&lt;br /&gt;
chunk.c:(.text+0x2b02): multiple definition of `_dmalloc_chunk_free'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x2b02): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_realloc':&lt;br /&gt;
chunk.c:(.text+0x3041): multiple definition of `_dmalloc_chunk_realloc'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x3041): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_log_stats':&lt;br /&gt;
chunk.c:(.text+0x34c5): multiple definition of `_dmalloc_chunk_log_stats'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x34c5): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_log_changed':&lt;br /&gt;
chunk.c:(.text+0x3845): multiple definition of `_dmalloc_chunk_log_changed'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x3845): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_count_changed':&lt;br /&gt;
chunk.c:(.text+0x3c8f): multiple definition of `_dmalloc_chunk_count_changed'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x3c8f): first defined here&lt;br /&gt;
chunk.o: In function `_dmalloc_chunk_get_stats':&lt;br /&gt;
chunk.c:(.text+0x3d76): multiple definition of `_dmalloc_chunk_get_stats'&lt;br /&gt;
libdmallocxx.a(chunk.o):chunk.c:(.text+0x3d76): first defined here&lt;br /&gt;
error.o:(.bss+0x0): multiple definition of `_dmalloc_address'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x0): first defined here&lt;br /&gt;
error.o:(.bss+0x8): multiple definition of `_dmalloc_address_seen_n'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x8): first defined here&lt;br /&gt;
error.o:(.bss+0x10): multiple definition of `_dmalloc_flags'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x10): first defined here&lt;br /&gt;
error.o:(.bss+0x18): multiple definition of `_dmalloc_iter_c'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x18): first defined here&lt;br /&gt;
error.o:(.bss+0x20): multiple definition of `_dmalloc_check_interval'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x20): first defined here&lt;br /&gt;
error.o:(.bss+0x28): multiple definition of `_dmalloc_start'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x28): first defined here&lt;br /&gt;
error.o:(.bss+0x2c): multiple definition of `_dmalloc_lock_on'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x2c): first defined here&lt;br /&gt;
error.o:(.bss+0x30): multiple definition of `_dmalloc_aborting_b'&lt;br /&gt;
libdmallocxx.a(error.o):(.bss+0x30): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_open_log':&lt;br /&gt;
error.c:(.text+0x290): multiple definition of `_dmalloc_open_log'&lt;br /&gt;
libdmallocxx.a(error.o):error.c:(.text+0x290): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_ptime':&lt;br /&gt;
error.c:(.text+0x481): multiple definition of `_dmalloc_ptime'&lt;br /&gt;
libdmallocxx.a(error.o):error.c:(.text+0x481): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_reopen_log':&lt;br /&gt;
error.c:(.text+0x41f): multiple definition of `_dmalloc_reopen_log'&lt;br /&gt;
libdmallocxx.a(error.o):error.c:(.text+0x41f): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_vmessage':&lt;br /&gt;
error.c:(.text+0x5d7): multiple definition of `_dmalloc_vmessage'&lt;br /&gt;
libdmallocxx.a(error.o):error.c:(.text+0x5d7): first defined here&lt;br /&gt;
error.o: In function `_dmalloc_die':&lt;br /&gt;
error.c:(.text+0x801): multiple definition of `_dmalloc_die'&lt;br /&gt;
libdmallocxx.a(error.o):error.c:(.text+0x801): first defined here&lt;br /&gt;
error.o: In function `dmalloc_error':&lt;br /&gt;
error.c:(.text+0x91e): multiple definition of `dmalloc_error'&lt;br /&gt;
libdmallocxx.a(error.o):error.c:(.text+0x91e): first defined here&lt;br /&gt;
malloc.o:(.data+0x0): multiple definition of `dmalloc_errno'&lt;br /&gt;
libdmallocxx.a(malloc.o):(.data+0x0): first defined here&lt;br /&gt;
malloc.o:(.bss+0x0): multiple definition of `dmalloc_logpath'&lt;br /&gt;
libdmallocxx.a(malloc.o):(.bss+0x0): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_message':&lt;br /&gt;
malloc.c:(.text+0x16fe): multiple definition of `dmalloc_message'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x16fe): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_shutdown':&lt;br /&gt;
malloc.c:(.text+0x5d5): multiple definition of `dmalloc_shutdown'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x5d5): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_malloc':&lt;br /&gt;
malloc.c:(.text+0x702): multiple definition of `dmalloc_malloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x702): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_realloc':&lt;br /&gt;
malloc.c:(.text+0x967): multiple definition of `dmalloc_realloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x967): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_free':&lt;br /&gt;
malloc.c:(.text+0xc0a): multiple definition of `dmalloc_free'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xc0a): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_strndup':&lt;br /&gt;
malloc.c:(.text+0xcf1): multiple definition of `dmalloc_strndup'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xcf1): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_verify_pnt_strsize':&lt;br /&gt;
malloc.c:(.text+0x1259): multiple definition of `dmalloc_verify_pnt_strsize'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1259): first defined here&lt;br /&gt;
malloc.o: In function `malloc':&lt;br /&gt;
malloc.c:(.text+0xe16): multiple definition of `malloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xe16): first defined here&lt;br /&gt;
malloc.o: In function `calloc':&lt;br /&gt;
malloc.c:(.text+0xe4f): multiple definition of `calloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xe4f): first defined here&lt;br /&gt;
malloc.o: In function `realloc':&lt;br /&gt;
malloc.c:(.text+0xe99): multiple definition of `realloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xe99): first defined here&lt;br /&gt;
malloc.o: In function `recalloc':&lt;br /&gt;
malloc.c:(.text+0xed5): multiple definition of `recalloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xed5): first defined here&lt;br /&gt;
malloc.o: In function `memalign':&lt;br /&gt;
malloc.c:(.text+0xf11): multiple definition of `memalign'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xf11): first defined here&lt;br /&gt;
malloc.o: In function `valloc':&lt;br /&gt;
malloc.c:(.text+0xf4f): multiple definition of `valloc'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xf4f): first defined here&lt;br /&gt;
malloc.o: In function `strdup':&lt;br /&gt;
malloc.c:(.text+0xf88): multiple definition of `strdup'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0xf88): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_verify_pnt':&lt;br /&gt;
malloc.c:(.text+0x12d0): multiple definition of `dmalloc_verify_pnt'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x12d0): first defined here&lt;br /&gt;
malloc.o: In function `strndup':&lt;br /&gt;
malloc.c:(.text+0x1060): multiple definition of `strndup'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1060): first defined here&lt;br /&gt;
malloc.o: In function `free':&lt;br /&gt;
malloc.c:(.text+0x1161): multiple definition of `free'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1161): first defined here&lt;br /&gt;
malloc.o: In function `cfree':&lt;br /&gt;
malloc.c:(.text+0x1191): multiple definition of `cfree'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1191): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_verify':&lt;br /&gt;
malloc.c:(.text+0x11c1): multiple definition of `dmalloc_verify'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x11c1): first defined here&lt;br /&gt;
malloc.o: In function `malloc_verify':&lt;br /&gt;
malloc.c:(.text+0x1242): multiple definition of `malloc_verify'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1242): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_debug':&lt;br /&gt;
malloc.c:(.text+0x1357): multiple definition of `dmalloc_debug'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1357): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_debug_current':&lt;br /&gt;
malloc.c:(.text+0x1393): multiple definition of `dmalloc_debug_current'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1393): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_debug_setup':&lt;br /&gt;
malloc.c:(.text+0x13b6): multiple definition of `dmalloc_debug_setup'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x13b6): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_examine':&lt;br /&gt;
malloc.c:(.text+0x13ff): multiple definition of `dmalloc_examine'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x13ff): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_track':&lt;br /&gt;
malloc.c:(.text+0x1519): multiple definition of `dmalloc_track'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1519): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_mark':&lt;br /&gt;
malloc.c:(.text+0x152e): multiple definition of `dmalloc_mark'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x152e): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_memory_allocated':&lt;br /&gt;
malloc.c:(.text+0x1552): multiple definition of `dmalloc_memory_allocated'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1552): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_page_size':&lt;br /&gt;
malloc.c:(.text+0x1576): multiple definition of `dmalloc_page_size'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1576): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_count_changed':&lt;br /&gt;
malloc.c:(.text+0x1595): multiple definition of `dmalloc_count_changed'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1595): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_log_stats':&lt;br /&gt;
malloc.c:(.text+0x1614): multiple definition of `dmalloc_log_stats'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1614): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_log_unfreed':&lt;br /&gt;
malloc.c:(.text+0x163c): multiple definition of `dmalloc_log_unfreed'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x163c): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_log_changed':&lt;br /&gt;
malloc.c:(.text+0x1699): multiple definition of `dmalloc_log_changed'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x1699): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_vmessage':&lt;br /&gt;
malloc.c:(.text+0x16df): multiple definition of `dmalloc_vmessage'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x16df): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_get_stats':&lt;br /&gt;
malloc.c:(.text+0x17df): multiple definition of `dmalloc_get_stats'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x17df): first defined here&lt;br /&gt;
malloc.o: In function `dmalloc_strerror':&lt;br /&gt;
malloc.c:(.text+0x184a): multiple definition of `dmalloc_strerror'&lt;br /&gt;
libdmallocxx.a(malloc.o):malloc.c:(.text+0x184a): first defined here&lt;br /&gt;
dmallocc.o: In function `operator delete[](void*)':&lt;br /&gt;
dmallocc.cc:(.text+0x0): multiple definition of `operator delete[](void*)'&lt;br /&gt;
libdmallocxx.a(dmallocc.o):dmallocc.cc:(.text+0x0): first defined here&lt;br /&gt;
dmallocc.o: In function `operator delete(void*)':&lt;br /&gt;
dmallocc.cc:(.text+0x2e): multiple definition of `operator delete(void*)'&lt;br /&gt;
libdmallocxx.a(dmallocc.o):dmallocc.cc:(.text+0x2e): first defined here&lt;br /&gt;
dmallocc.o: In function `operator new[](unsigned long)':&lt;br /&gt;
dmallocc.cc:(.text+0x5c): multiple definition of `operator new[](unsigned long)'&lt;br /&gt;
libdmallocxx.a(dmallocc.o):dmallocc.cc:(.text+0x5c): first defined here&lt;br /&gt;
dmallocc.o: In function `operator new(unsigned long)':&lt;br /&gt;
dmallocc.cc:(.text+0x96): multiple definition of `operator new(unsigned long)'&lt;br /&gt;
libdmallocxx.a(dmallocc.o):dmallocc.cc:(.text+0x96): first defined here&lt;br /&gt;
make: *** [libdmallocxx.so] Error 1&lt;br /&gt;
[root@server dmalloc-5.5.2]# &lt;/p&gt;
&lt;p&gt;Any help would be appreciated.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Sat, 20 Jun 2009 20:10:32 -0000</pubDate><guid>https://sourceforge.net8b3cceaefc34ddc198312c5ea1f19fb0748aa488</guid></item><item><title>deeper stack trace</title><link>https://sourceforge.net/p/dmalloc/feature-requests/1/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, I would find it much more usable, if dmalloc reported an N-level &lt;br /&gt;
deep stack backtrace instead of one return address, for &lt;br /&gt;
user-defined value of N.&lt;br /&gt;
this kind of functionality would be most useful when debugging code &lt;br /&gt;
that uses, for example, STL containers, where an allocation is &lt;br /&gt;
triggered after 3 or so levels of function calls.&lt;br /&gt;
it should store and report allocation backtrace for unfreed &lt;br /&gt;
allocations and free backtrace for erroneous frees, the earlier will, &lt;br /&gt;
of course add some overhead, but it's only some tens of bytes :)&lt;/p&gt;
&lt;p&gt;If would also be nice if dmalloc could link to libbfd and convert the &lt;br /&gt;
addresses to their respective function names, possibly demangled.&lt;/p&gt;
&lt;p&gt;P.S. please note this GCC bug if you set to implement this feature&lt;br /&gt;
&lt;a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8743" rel="nofollow"&gt;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8743&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitrii Tisnek</dc:creator><pubDate>Mon, 25 Aug 2003 09:44:00 -0000</pubDate><guid>https://sourceforge.netaf926da395038da964f11d54a991a44f7fc1cab3</guid></item></channel></rss>