diff options
Diffstat (limited to 'trunk/src/prelink.h')
-rw-r--r-- | trunk/src/prelink.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/trunk/src/prelink.h b/trunk/src/prelink.h index 5de2f0e..61e25c2 100644 --- a/trunk/src/prelink.h +++ b/trunk/src/prelink.h @@ -85,6 +85,14 @@ #define R_ARM_TLS_TPOFF32 19 #endif +#ifndef R_386_IRELATIVE +#define R_386_IRELATIVE 42 +#endif + +#ifndef R_X86_64_IRELATIVE +#define R_X86_64_IRELATIVE 37 +#endif + struct prelink_entry; struct prelink_info; struct PLArch; @@ -179,7 +187,7 @@ struct PLArch GElf_Rela *rela, GElf_Addr relaaddr); int (*arch_prelink_conflict) (DSO *dso, struct prelink_info *info); int (*apply_conflict_rela) (struct prelink_info *info, GElf_Rela *rela, - char *buf); + char *buf, GElf_Addr dest_addr); int (*apply_rel) (struct prelink_info *info, GElf_Rel *rel, char *buf); int (*apply_rela) (struct prelink_info *info, GElf_Rela *rela, char *buf); int (*rel_to_rela) (DSO *dso, GElf_Rel *rel, GElf_Rela *rela); @@ -413,7 +421,8 @@ struct prelink_conflict /* Value it has in conflict.ent. */ GElf_Addr conflictval; int reloc_class; - int used; + unsigned char used; + unsigned char ifunc; }; struct prelink_conflicts @@ -489,7 +498,7 @@ int execve_close (FILE *f); int remove_redundant_cxx_conflicts (struct prelink_info *info); int get_relocated_mem (struct prelink_info *info, DSO *dso, GElf_Addr addr, - char *buf, GElf_Word size); + char *buf, GElf_Word size, GElf_Addr dest_addr); int layout_libs (void); |