diff options
Diffstat (limited to 'trunk/src/cxx.c')
-rw-r--r-- | trunk/src/cxx.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/trunk/src/cxx.c b/trunk/src/cxx.c index 9a20b3c..4391ebe 100644 --- a/trunk/src/cxx.c +++ b/trunk/src/cxx.c @@ -26,6 +26,7 @@ #include <unistd.h> #include <sys/wait.h> #include "prelink.h" +#include "reloc-info.h" static struct { @@ -338,10 +339,10 @@ remove_redundant_cxx_conflicts (struct prelink_info *info) { size_t cidx; - reloc_type = GELF_R_TYPE (info->conflict_rela[i].r_info); + reloc_type = reloc_r_type (info->dso, info->conflict_rela[i].r_info); reloc_size = info->dso->arch->reloc_size (reloc_type); - if (GELF_R_SYM (info->conflict_rela[i].r_info) != 0) + if (reloc_r_sym (info->dso, info->conflict_rela[i].r_info) != 0) continue; if (state @@ -471,7 +472,8 @@ remove_noref: (int) (info->conflict_rela[i].r_offset - fcs1.sym.st_value)); info->conflict_rela[i].r_info = - GELF_R_INFO (1, GELF_R_TYPE (info->conflict_rela[i].r_info)); + reloc_r_info (info->dso, 1, + reloc_r_type (info->dso, info->conflict_rela[i].r_info)); ++removed; continue; @@ -608,7 +610,7 @@ pltref_remove: - fcs1.sym.st_value)); info->conflict_rela[i].r_info = - GELF_R_INFO (1, GELF_R_TYPE (info->conflict_rela[i].r_info)); + reloc_r_info (info->dso, 1, reloc_r_type (info->dso, info->conflict_rela[i].r_info)); ++removed; goto pltref_check_done; } @@ -622,7 +624,7 @@ pltref_check_done: if (removed) { for (i = 0, j = 0; i < info->conflict_rela_size; ++i) - if (GELF_R_SYM (info->conflict_rela[i].r_info) == 0) + if (reloc_r_sym (info->dso, info->conflict_rela[i].r_info) == 0) { if (i != j) info->conflict_rela[j] = info->conflict_rela[i]; |