Removed vg_default.c, hooray.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3643 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
index 43afe6b..a819fe1 100644
--- a/coregrind/Makefile.am
+++ b/coregrind/Makefile.am
@@ -75,7 +75,6 @@
 	ume.c \
 	\
 	vg_scheduler.c \
-	vg_default.c \
 	vg_demangle.c \
 	vg_hashtable.c \
 	vg_replace_malloc.c \
diff --git a/coregrind/core.h b/coregrind/core.h
index 566cc46..0174458 100644
--- a/coregrind/core.h
+++ b/coregrind/core.h
@@ -508,14 +508,6 @@
 
 
 /* ---------------------------------------------------------------------
-   Exports of vg_defaults.c
-   ------------------------------------------------------------------ */
-
-extern Bool VG_(tl_malloc_called_deliberately);
-
-
-
-/* ---------------------------------------------------------------------
    Exports of vg_scheduler.c
    ------------------------------------------------------------------ */
 
diff --git a/coregrind/vg_default.c b/coregrind/vg_default.c
deleted file mode 100644
index 2a751b1..0000000
--- a/coregrind/vg_default.c
+++ /dev/null
@@ -1,96 +0,0 @@
-
-/*--------------------------------------------------------------------*/
-/*--- Default panicky definitions of template functions that tools ---*/
-/*--- should override.                                             ---*/
-/*---                                                vg_defaults.c ---*/
-/*--------------------------------------------------------------------*/
-
-/*
-   This file is part of Valgrind, a dynamic binary instrumentation
-   framework.
-
-   Copyright (C) 2000-2005 Nicholas Nethercote
-      njn@valgrind.org
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307, USA.
-
-   The GNU General Public License is contained in the file COPYING.
-*/
-
-
-#include "core.h"
-
-/* ---------------------------------------------------------------------
-   Error messages (for malformed tools)
-   ------------------------------------------------------------------ */
-
-/* If the tool fails to define one or more of the required functions,
- * make it very clear what went wrong! */
-
-__attribute__ ((noreturn))
-void VG_(missing_tool_func) ( const Char* fn )
-{
-   VG_(printf)(
-      "\nTool error:\n"
-      "  The tool you have selected is missing the function `%s',\n"
-      "  which is required.\n\n",
-      fn);
-   VG_(tool_panic)("Missing tool function");
-}
-
-static __attribute__ ((noreturn))
-void malloc_panic ( const Char* fn )
-{
-   VG_(printf)(
-      "\nTool error:\n"
-      "  The tool you have selected is missing the function `%s'\n"
-      "  required because it is replacing malloc() et al.\n\n",
-      fn);
-   VG_(tool_panic)("Missing tool function");
-}
-
-/*------------------------------------------------------------*/
-/*--- Replacing malloc et al                               ---*/
-/*------------------------------------------------------------*/
-
-Bool VG_(tl_malloc_called_deliberately) = False;
-
-/* If the tool hasn't replaced malloc(), this one can be called
-   deliberately.  The lock variable ensures that this isn't called by
-   accident, which could happen if a malloc()-replacing tool forgot to
-   implement TL_(malloc)() or TL_(free)().  */
-__attribute__ ((weak))
-void* TL_(malloc)( ThreadId tid, SizeT size )
-{
-   if (VG_(tl_malloc_called_deliberately))
-      return VG_(cli_malloc)(VG_MIN_MALLOC_SZB, size);
-   else 
-      malloc_panic(__PRETTY_FUNCTION__);
-}
-
-__attribute__ ((weak))
-void TL_(free)( ThreadId tid, void* p )
-{
-   /* see comment for TL_(malloc)() above */
-   if (VG_(tl_malloc_called_deliberately))
-      VG_(cli_free)(p);
-   else 
-      malloc_panic(__PRETTY_FUNCTION__);
-}
-
-/*--------------------------------------------------------------------*/
-/*--- end                                            vg_defaults.c ---*/
-/*--------------------------------------------------------------------*/
diff --git a/coregrind/vg_main.c b/coregrind/vg_main.c
index 3bc1792..45e9f4d 100644
--- a/coregrind/vg_main.c
+++ b/coregrind/vg_main.c
@@ -2872,7 +2872,21 @@
    /* Print Vex storage stats */
    if (0)
        LibVEX_ShowAllocStats();
+}
 
+/* If the tool fails to define one or more of the required functions,
+ * make it very clear what went wrong! */
+// XXX: this is not a very good place for this function.  Hopefully we'll be
+// able to remove it in the future.
+__attribute__ ((noreturn))
+void VG_(missing_tool_func) ( const Char* fn )
+{
+   VG_(printf)(
+      "\nTool error:\n"
+      "  The tool you have selected is missing the function `%s',\n"
+      "  which is required.\n\n",
+      fn);
+   VG_(tool_panic)("Missing tool function");
 }
 
 /*--------------------------------------------------------------------*/
diff --git a/coregrind/vg_pthreadmodel.c b/coregrind/vg_pthreadmodel.c
index 5bc7c12..84f2dc5 100644
--- a/coregrind/vg_pthreadmodel.c
+++ b/coregrind/vg_pthreadmodel.c
@@ -201,9 +201,19 @@
    // [Possible: When using a tool that replaces malloc(), we want to call
    //  the replacement version.  Otherwise, we want to use VG_(cli_malloc)().
    //  So we go via the default version of TL_(malloc)() in vg_default?]
-   VG_(tl_malloc_called_deliberately) = True;
-   data = TL_(malloc)(sizeof(*data));
-   VG_(tl_malloc_called_deliberately) = False;
+   tl_assert2(0, "read the comment in the code about this...");
+
+   // XXX: These three lines are going to have to change.  They relied on
+   // TL_(malloc) being a weak symbol, and it just doesn't fit with the
+   // VG_(tdict) approach that we've switched to.  The right way to do this
+   // will be to provide a function in the core that checks if
+   // VG_(tdict).malloc_malloc has been set (or perhaps it would be better
+   // to check whether VG_USERREQ__GET_MALLOCFUNCS has been called, ie.
+   // whether replace_malloc.c:init() has been called);  if so, it should
+   // call it, if not, it should call VG_(cli_malloc)().
+//   VG_(tl_malloc_called_deliberately) = True;
+//   data = TL_(malloc)(sizeof(*data));
+//   VG_(tl_malloc_called_deliberately) = False;
 
    VG_TRACK(pre_mem_write, Vg_CorePThread, tst->tid, "new thread data",
 	    (Addr)data, sizeof(*data));