From 40135bb14bb9d40c0ae29cc17c8632b81ee145ed Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 9 Oct 2013 13:22:36 +0000 Subject: [PATCH] New flag OBJF_NOT_FILENAME gdb/ 2013-10-09 Jan Kratochvil 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. --- gdb/ChangeLog | 14 ++++++++++++++ gdb/auto-load.c | 2 +- gdb/jit.c | 5 +++-- gdb/jv-lang.c | 3 ++- gdb/objfiles.c | 1 + gdb/objfiles.h | 5 +++++ 6 files changed, 26 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5f964d1098..c2e87d65fd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,17 @@ +2013-10-09 Jan Kratochvil + + 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 * Makefile.in (SFILES): Add build-id.c. diff --git a/gdb/auto-load.c b/gdb/auto-load.c index 6d0d6d98c2..4eb7cdd499 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 c7edd4a327..ba0be5e440 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 0d07bbd291..63bcc98fcd 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 a10540a585..d1f312141d 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 = "<>"; } objfile->original_name = obstack_copy0 (&objfile->objfile_obstack, name, diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 8586e5a12b..08771d0925 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 "". */ + +#define OBJF_NOT_FILENAME (1 << 6) + /* Declarations for functions defined in objfiles.c */ extern struct objfile *allocate_objfile (bfd *, const char *name, int);