Enable the new DWARF indexer

This patch finally enables the new indexer.  It is left until this
point in the series to avoid any regressions; in particular, it has to
come after the changes to the DWARF index writer to avoid this
problem.

However, if you experiment with the series, this patch can be moved
anywhere from the patch to wire in the new reader to this point.
Moving this patch around is how I got separate numbers for the
parallelization and background finalization patches.

In the ongoing performance example, this reduces the time from the
baseline of 1.598869 to 0.903534.



diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index fce465e..1f72c1b 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -5706,7 +5706,8 @@ dwarf2_initialize_objfile (struct objfile *objfile)
     }
 
   global_index_cache.miss ();
-  objfile->qf.push_front (make_lazy_dwarf_reader ());
+  per_bfd->using_index = true;
+  objfile->qf.push_front (make_cooked_index_funcs ());
 }
 
 
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 6f7bd2d..45ccdc6 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -200,11 +200,11 @@
 	 "  Number of symbol tables: $decimal" \
 	 "  Number of symbol tables with line tables: $decimal" \
 	 "  Number of symbol tables with blockvectors: $decimal" \
-	 "(  Number of read CUs: $decimal" \
-	 "  Number of unread CUs: $decimal" \
-	 ")?(  Number of \"partial\" symbols read: $decimal" \
+	 "(  Number of \"partial\" symbols read: $decimal" \
 	 ")?(  Number of psym tables \\(not yet expanded\\): $decimal" \
 	 ")?(  Total memory used for psymbol cache: $decimal" \
+	 ")?(  Number of read CUs: $decimal" \
+	 "  Number of unread CUs: $decimal" \
 	 ")?  Total memory used for objfile obstack: $decimal" \
 	 "  Total memory used for BFD obstack: $decimal" \
 	 "  Total memory used for string cache: $decimal" \
@@ -224,12 +224,17 @@
 
 set header 0
 set psymtabs 0
+set cooked_index 0
 set symtabs 0
 gdb_test_multiple "maint print objfiles" "" -lbl {
     -re "\r\nObject file.*maint($EXEEXT)?:  Objfile at ${hex}" {
 	set header 1
 	exp_continue
     }
+    -re "\r\nCooked index" {
+	set cooked_index 1
+	exp_continue
+    }
     -re "\r\nPsymtabs:\[\r\t \]+" {
 	set psymtabs 1
 	exp_continue
@@ -248,6 +253,9 @@
 }
 
 maint_pass_if $header   "maint print objfiles: header"
+if {$cooked_index} {
+    set have_psyms 0
+}
 if { $have_psyms } {
     maint_pass_if $psymtabs "maint print objfiles: psymtabs"
 }
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
index 1afcaa3..3ac94c3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
@@ -54,8 +54,7 @@
 set pattern1 \
     [multi_line \
 	 "Reading symbols from \[^\r\n\]+" \
-	 "Dwarf Error: unexpected tag 'DW_TAG_subprogram' at offset $hex \\\[\[^\r\n\]+\\\]" \
-	 "\\(No debugging symbols \[^\r\n\]+\\)"]
+	 "Dwarf Error: unexpected tag 'DW_TAG_subprogram' at offset $hex \\\[\[^\r\n\]+\\\]"]
 
 # This pattern is hit when GDB does use -readnow (e.g. running with
 # --target_board=readnow).
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 2eb7117..902fb4a 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -8085,7 +8085,7 @@
 	    set has_index 1
 	    gdb_test_lines "" $gdb_test_name ".*"
 	}
-	-re "\r\nPsymtabs:(?=\r\n)" {
+	-re "\r\n(Cooked index in use|Psymtabs)(?=\r\n)" {
 	    gdb_test_lines "" $gdb_test_name ".*"
 	}
 	-re ".gdb_index: faked for \"readnow\"" {