summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog14
-rw-r--r--gdb/auto-load.c2
-rw-r--r--gdb/jit.c5
-rw-r--r--gdb/jv-lang.c3
-rw-r--r--gdb/objfiles.c1
-rw-r--r--gdb/objfiles.h5
6 files changed, 26 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5f964d10980..c2e87d65fd2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2013-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ New flag OBJF_NOT_FILENAME.
+ * auto-load.c (auto_load_objfile_script): Check also OBJF_NOT_FILENAME.
+ * jit.c (jit_object_close_impl): Use OBJF_NOT_FILENAME for
+ allocate_objfile.
+ (jit_bfd_try_read_symtab): Use OBJF_NOT_FILENAME for
+ symbol_file_add_from_bfd.
+ * jv-lang.c (get_dynamics_objfile): Use OBJF_NOT_FILENAME for
+ allocate_objfile.
+ * objfiles.c (allocate_objfile): Assert OBJF_NOT_FILENAME if NAME is
+ NULL.
+ * objfiles.h (OBJF_NOT_FILENAME): New.
+
2013-10-08 Tom Tromey <tromey@redhat.com>
* Makefile.in (SFILES): Add build-id.c.
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 6d0d6d98c2e..4eb7cdd499e 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -840,7 +840,7 @@ auto_load_objfile_script (struct objfile *objfile,
void
load_auto_scripts_for_objfile (struct objfile *objfile)
{
- if (!global_auto_load)
+ if (!global_auto_load || (objfile->flags & OBJF_NOT_FILENAME) != 0)
return;
if (auto_load_gdb_scripts)
diff --git a/gdb/jit.c b/gdb/jit.c
index c7edd4a3273..ba0be5e440e 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -785,7 +785,8 @@ jit_object_close_impl (struct gdb_symbol_callbacks *cb,
priv_data = cb->priv_data;
- objfile = allocate_objfile (NULL, "<< JIT compiled code >>", 0);
+ objfile = allocate_objfile (NULL, "<< JIT compiled code >>",
+ OBJF_NOT_FILENAME);
objfile->per_bfd->gdbarch = target_gdbarch ();
terminate_minimal_symbol_table (objfile);
@@ -926,7 +927,7 @@ JITed symbol file is not an object file, ignoring it.\n"));
/* This call does not take ownership of SAI. */
make_cleanup_bfd_unref (nbfd);
objfile = symbol_file_add_from_bfd (nbfd, bfd_get_filename (nbfd), 0, sai,
- OBJF_SHARED, NULL);
+ OBJF_SHARED | OBJF_NOT_FILENAME, NULL);
do_cleanups (old_cleanups);
add_objfile_entry (objfile, entry_addr);
diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c
index 0d07bbd2913..63bcc98fcd6 100644
--- a/gdb/jv-lang.c
+++ b/gdb/jv-lang.c
@@ -118,7 +118,8 @@ get_dynamics_objfile (struct gdbarch *gdbarch)
/* Mark it as shared so that it is cleared when the inferior is
re-run. */
- dynamics_objfile = allocate_objfile (NULL, NULL, OBJF_SHARED);
+ dynamics_objfile = allocate_objfile (NULL, NULL,
+ OBJF_SHARED | OBJF_NOT_FILENAME);
dynamics_objfile->per_bfd->gdbarch = gdbarch;
data = XCNEW (struct jv_per_objfile_data);
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index a10540a5852..d1f312141da 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -289,6 +289,7 @@ allocate_objfile (bfd *abfd, const char *name, int flags)
if (name == NULL)
{
gdb_assert (abfd == NULL);
+ gdb_assert ((flags & OBJF_NOT_FILENAME) != 0);
name = "<<anonymous objfile>>";
}
objfile->original_name = obstack_copy0 (&objfile->objfile_obstack, name,
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 8586e5a12bf..08771d09256 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -429,6 +429,11 @@ struct objfile
#define OBJF_MAINLINE (1 << 5)
+/* ORIGINAL_NAME and OBFD->FILENAME correspond to text description unrelated to
+ filesystem names. It can be for example "<image in memory>". */
+
+#define OBJF_NOT_FILENAME (1 << 6)
+
/* Declarations for functions defined in objfiles.c */
extern struct objfile *allocate_objfile (bfd *, const char *name, int);