]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* psymtab.c (read_psymtabs_with_fullname): Don't call
authorDoug Evans <dje@google.com>
Thu, 4 Apr 2013 22:07:42 +0000 (22:07 +0000)
committerDoug Evans <dje@google.com>
Thu, 4 Apr 2013 22:07:42 +0000 (22:07 +0000)
psymtab_to_fullname if the basenames are different.

gdb/ChangeLog
gdb/psymtab.c

index bbe96ef9f6f82927a5748443bc9f9d3ea790d12d..3dc23ac9c3a4e8f8fbf1a8b2e11bab40bb815703 100644 (file)
@@ -4,6 +4,11 @@
        * breakpoint.c (validate_commands_for_breakpoint): If validating a
        tracepoint, reset its STEP_COUNT and call validate_actionline.
 
+2013-04-03  Doug Evans  <dje@google.com>
+
+       * psymtab.c (read_psymtabs_with_fullname): Don't call
+       psymtab_to_fullname if the basenames are different.
+
 2013-04-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * NEWS (Changes in GDB 7.6): Update the data-disassemble for "fullname".
index 2965e9f5e6cfc674af01f051d96e33693538def4..3075be4a16c9ffcdf782e7360b167fff5ba9e0e8 100644 (file)
@@ -1111,7 +1111,11 @@ read_psymtabs_with_fullname (struct objfile *objfile, const char *fullname)
       if (p->anonymous)
        continue;
 
-      if (filename_cmp (fullname, psymtab_to_fullname (p)) == 0)
+      /* psymtab_to_fullname tries to open the file which is slow.
+        Don't call it if we know the basenames don't match.  */
+      if ((basenames_may_differ
+          || filename_cmp (lbasename (fullname), lbasename (p->filename)) == 0)
+         && filename_cmp (fullname, psymtab_to_fullname (p)) == 0)
        psymtab_to_symtab (objfile, p);
     }
 }