aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2020-07-22 15:56:06 +0200
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2020-07-22 15:56:06 +0200
commit238b5c9f0881b2e27d2eb111ad9c7fe874859acf (patch)
tree4a6c48835685490c23f61d568798cf575ed39acc /gdb/objfiles.h
parentfe053b9e85378b4df1397684266b2cddcce8123b (diff)
downloadgdb-238b5c9f0881b2e27d2eb111ad9c7fe874859acf.zip
gdb-238b5c9f0881b2e27d2eb111ad9c7fe874859acf.tar.gz
gdb-238b5c9f0881b2e27d2eb111ad9c7fe874859acf.tar.bz2
gdb/jit: link to jit_objfile_data directly from the objfile struct
Remove the use of objfile_data to associate a jit_objfile_data with an objfile. Instead, directly link to a jit_objfile_data from an objfile struct. The goal is to eliminate unnecessary abstraction. The free_objfile_data function naturally becomes the destructor of jit_objfile_data. However, free_objfile_data accesses the objfile to which the data is attached, which the destructor of jit_objfile_data doesn't have access to. To work around this, add a backlink to the owning objfile in jit_objfile_data. This is however temporary, it goes away in a subsequent patch. gdb/ChangeLog: 2020-07-22 Simon Marchi <simon.marchi@polymtl.ca> * jit.h: Forward-declare `struct minimal_symbol`. (struct jit_objfile_data): Migrate to here from jit.c; also add a constructor, destructor, and an objfile* field. * jit.c (jit_objfile_data): Remove. (struct jit_objfile_data): Migrate from here to jit.h. (jit_objfile_data::~jit_objfile_data): New destructor implementation with code moved from free_objfile_data. (free_objfile_data): Delete. (get_jit_objfile_data): Update to use the jit_data field of objfile. (jit_find_objf_with_entry_addr): Ditto. (jit_inferior_exit_hook): Ditto. (_initialize_jit): Remove the call to register_objfile_data_with_cleanup. * objfiles.h (struct objfile) <jit_data>: New field.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 56ff521..b21b426 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -36,6 +36,7 @@
#include "bcache.h"
#include "gdbarch.h"
#include "gdbsupport/refcounted-object.h"
+#include "jit.h"
struct htab;
struct objfile_data;
@@ -697,6 +698,9 @@ public:
store these here rather than in struct block. Static links must be
allocated on the objfile's obstack. */
htab_up static_links;
+
+ /* JIT-related data for this objfile. */
+ std::unique_ptr<jit_objfile_data> jit_data = nullptr;
};
/* A deleter for objfile. */