Add drd suppression file to the default suppressions and avoid
including core headers in the drd tool.

Patch from Bart Van Assche <bart.vanassche@gmail.com>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7318 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/configure.in b/configure.in
index 0604a6d..ba3944b 100644
--- a/configure.in
+++ b/configure.in
@@ -485,6 +485,7 @@
 	AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
 	DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
 	DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
 	;;
 
      2.3)
@@ -492,6 +493,7 @@
 	AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
 	DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
 	;;
 
      2.4)
@@ -499,6 +501,7 @@
 	AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
 	DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
 	;;
 
      2.5)
@@ -506,18 +509,21 @@
 	AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
 	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
 	;;
      2.6)
 	AC_MSG_RESULT(2.6 family)
 	AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
 	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
 	;;
      2.7)
 	AC_MSG_RESULT(2.7 family)
 	AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
 	DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}"
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
 	;;
      aix5)
 	AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
diff --git a/exp-drd/drd_main.c b/exp-drd/drd_main.c
index d18b8b2..9cc7f12 100644
--- a/exp-drd/drd_main.c
+++ b/exp-drd/drd_main.c
@@ -35,8 +35,6 @@
 #include "drd_track.h"
 #include "drd_vc.h"
 #include "priv_drd_clientreq.h"
-#include "pub_core_mallocfree.h"
-#include "pub_core_options.h"
 #include "pub_tool_vki.h"
 #include "pub_tool_basics.h"
 #include "pub_tool_debuginfo.h"   // VG_(describe_IP)()
@@ -152,8 +150,7 @@
                    thread_get_name(thread_get_running_tid()),
                    VG_(get_running_tid)(),
                    thread_get_running_tid());
-      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(),
-                                 VG_(clo_backtrace_size));
+      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(), 12);
       tl_assert(DrdThreadIdToVgThreadId(thread_get_running_tid())
                 == VG_(get_running_tid)());
    }
@@ -195,8 +192,7 @@
                    VG_(get_running_tid)(),
                    thread_get_running_tid(),
                    addr - thread_get_stack_min(thread_get_running_tid()));
-      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(),
-                                 VG_(clo_backtrace_size));
+      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(), 12);
       tl_assert(DrdThreadIdToVgThreadId(thread_get_running_tid())
                 == VG_(get_running_tid)());
    }
@@ -251,8 +247,7 @@
       VG_(message)(Vg_UserMsg, "start 0x%lx size %ld %s (tracing 0x%lx)",
                    a1, a2 - a1, thread_get_name(thread_get_running_tid()),
                    drd_trace_address);
-      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(),
-                                 VG_(clo_backtrace_size));
+      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(), 12);
    }
 }
 
@@ -264,8 +259,7 @@
       VG_(message)(Vg_UserMsg, "end   0x%lx size %ld %s (tracing 0x%lx)",
                    a1, a2 - a1, thread_get_name(thread_get_running_tid()),
                    drd_trace_address);
-      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(),
-                                 VG_(clo_backtrace_size));
+      VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(), 12);
    }
    thread_stop_using_mem(a1, a2);
    mutex_stop_using_mem(a1, a2);
@@ -684,21 +678,6 @@
    }
 }
 
-static void drd_load_suppression_file(void)
-{
-   tl_assert(VG_(clo_n_suppressions) < VG_CLO_MAX_SFILES - 1);
-   {
-      /* If we haven't reached the max number of suppression files, load
-         the drd suppression patterns file. */
-      static const Char drd_supp[] = "glibc-2.X-drd.supp";
-      const Int len = VG_(strlen)(VG_(libdir)) + 1 + sizeof(drd_supp);
-      Char* const buf = VG_(arena_malloc)(VG_AR_CORE, len);
-      VG_(snprintf)(buf, len, "%s/%s", VG_(libdir), drd_supp);
-      VG_(clo_suppressions)[VG_(clo_n_suppressions)] = buf;
-      VG_(clo_n_suppressions)++;
-   }
-}
-
 static
 void drd_pre_clo_init(void)
 {
@@ -742,8 +721,6 @@
    drd_clientreq_init();
 
    drd_suppression_init();
-
-   drd_load_suppression_file();
 }