summaryrefslogtreecommitdiff
path: root/rts/LinkerInternals.h
diff options
context:
space:
mode:
Diffstat (limited to 'rts/LinkerInternals.h')
-rw-r--r--rts/LinkerInternals.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h
index 5370c86357..bafd7f0543 100644
--- a/rts/LinkerInternals.h
+++ b/rts/LinkerInternals.h
@@ -239,6 +239,8 @@ typedef enum {
DYNAMIC_OBJECT,
} ObjectType;
+typedef void (*cxa_finalize_fn)(void *);
+
/* Top-level structure for an object module. One of these is allocated
* for each object file in use.
*/
@@ -276,6 +278,11 @@ struct _ObjectCode {
after allocation, so that we can use realloc */
int misalignment;
+ /* The address of __cxa_finalize; set when at least one finalizer was
+ * register and therefore we must call __cxa_finalize before unloading.
+ * See Note [Resolving __dso_handle]. */
+ cxa_finalize_fn cxa_finalize;
+
/* The section-kind entries for this object module. An array. */
int n_sections;
Section* sections;