Index: gcc/ggc-zone.c
===================================================================
--- gcc/ggc-zone.c	(revision 167234)
+++ gcc/ggc-zone.c	(working copy)
@@ -2476,7 +2476,7 @@

   /* We've just read in a PCH file.  So, every object that used to be
      allocated is now free.  */
-#ifdef 0 && GATHER_STATISTICS
+#ifdef GATHER_STATISTICS
   zone_allocate_marks ();
   ggc_prune_overhead_list ();
   zone_free_marks ();
Index: gcc/ggc-none.c
===================================================================
--- gcc/ggc-none.c	(revision 167234)
+++ gcc/ggc-none.c	(working copy)
@@ -71,3 +71,22 @@
 struct alloc_zone rtl_zone;
 struct alloc_zone tree_zone;
 struct alloc_zone tree_id_zone;
+
+#if defined (GGC_ZONE) && !defined (GENERATOR_FILE)
+
+void *
+ggc_internal_alloc_zone_stat (size_t size,
+                              struct alloc_zone * ARG_UNUSED(z) MEM_STAT_DECL)
+{
+    return xmalloc (size);
+}
+
+void *
+ggc_internal_cleared_alloc_zone_stat (size_t size,
+                                      struct alloc_zone * ARG_UNUSED(z)
+                                      MEM_STAT_DECL)
+{
+    return xcalloc (size, 1);
+}
+
+#endif
