summaryrefslogtreecommitdiffstats
path: root/trunk/src/cxx.c
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/cxx.c')
-rw-r--r--trunk/src/cxx.c12
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];