summaryrefslogtreecommitdiffstats
path: root/sysdep
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-03-04 12:36:26 +0100
committerMartin Mares <mj@ucw.cz>1999-03-04 12:36:26 +0100
commit7a2105becdbadf20c1b4e4d2359e339c90610825 (patch)
tree524bc4947ec1938cd48e3ec6a44a9f66983f8e4b /sysdep
parentaa64578641c15b137172acc927d9d7af5914576b (diff)
downloadbird-7a2105becdbadf20c1b4e4d2359e339c90610825.tar
bird-7a2105becdbadf20c1b4e4d2359e339c90610825.zip
Use dmalloc instead of EFence when available (dmalloc has lot of improvements
over EFence and also hopefully smaller memory overhead, but sadly it's non-free for commercial use). If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable' checks by default. Also introduced mb_allocz() for cleared mb_alloc().
Diffstat (limited to 'sysdep')
-rw-r--r--sysdep/autoconf.h.in3
-rw-r--r--sysdep/unix/main.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/sysdep/autoconf.h.in b/sysdep/autoconf.h.in
index a1ef2f8..ae4d6b6 100644
--- a/sysdep/autoconf.h.in
+++ b/sysdep/autoconf.h.in
@@ -40,3 +40,6 @@
/* Path to configuration files */
#define PATH_CONFIG_DIR ?
+
+/* Are we using dmalloc? */
+#undef HAVE_LIBDMALLOC
diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c
index e5e9934..45940fb 100644
--- a/sysdep/unix/main.c
+++ b/sysdep/unix/main.c
@@ -8,6 +8,7 @@
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/signal.h>
@@ -186,6 +187,11 @@ parse_args(int argc, char **argv)
int
main(int argc, char **argv)
{
+#ifdef HAVE_LIBDMALLOC
+ if (!getenv("DMALLOC_OPTIONS"))
+ dmalloc_debug(0x2f03d00);
+#endif
+
log_init_debug(NULL);
parse_args(argc, argv);