summaryrefslogtreecommitdiff
path: root/libexec/ld.so/resolve.h
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2016-08-23 06:46:18 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2016-08-23 06:46:18 +0000
commitb61ed1f75ceffde31fd10bb7c81e5d446b154c81 (patch)
treedccd565e6f06b6917d150db744016848807579c5 /libexec/ld.so/resolve.h
parent25abbe9dbe931a3f0315ad0ad3e94878a7e93583 (diff)
Implement support for DT_INIT_ARRAY, DT_FINI_ARRAY and DT_PREINIT_ARRAY.
Don't skip DT_INIT and DT_FINI for the main executable. This matches what Linux and Solaris do. ok guenther@
Diffstat (limited to 'libexec/ld.so/resolve.h')
-rw-r--r--libexec/ld.so/resolve.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/libexec/ld.so/resolve.h b/libexec/ld.so/resolve.h
index df0469c9fc0..24dbef66133 100644
--- a/libexec/ld.so/resolve.h
+++ b/libexec/ld.so/resolve.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: resolve.h,v 1.79 2016/08/08 21:59:20 guenther Exp $ */
+/* $OpenBSD: resolve.h,v 1.80 2016/08/23 06:46:17 kettenis Exp $ */
/*
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
@@ -81,13 +81,23 @@ struct elf_object {
const char *soname;
const char *rpath;
Elf_Addr symbolic;
- Elf_Rel *rel;
+ Elf_Rel *rel;
Elf_Addr relsz;
Elf_Addr relent;
Elf_Addr pltrel;
Elf_Addr debug;
Elf_Addr textrel;
Elf_Addr jmprel;
+ Elf_Addr bind_now;
+ void (**init_array)(void);
+ void (**fini_array)(void);
+ Elf_Addr init_arraysz;
+ Elf_Addr fini_arraysz;
+ const char *runpath;
+ Elf_Addr flags;
+ Elf_Addr encoding;
+ void (**preinit_array)(void);
+ Elf_Addr preinit_arraysz;
} u;
} Dyn;
#define dyn Dyn.u