diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2016-08-23 06:46:18 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2016-08-23 06:46:18 +0000 |
commit | b61ed1f75ceffde31fd10bb7c81e5d446b154c81 (patch) | |
tree | dccd565e6f06b6917d150db744016848807579c5 /libexec/ld.so/resolve.h | |
parent | 25abbe9dbe931a3f0315ad0ad3e94878a7e93583 (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.h | 14 |
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 |