aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2010-06-15 12:55:36 -0500
committerMark Hatle <mark.hatle@windriver.com>2010-07-22 18:45:08 -0500
commit998008fdec4d86e1f9f14f5555892657c3d9356e (patch)
tree57f5022ce2198d117c917750f9902b6861440663
parent25d6192f35facb02e4b114d09c4af21f03e5197e (diff)
downloadprelink-cross-998008fdec4d86e1f9f14f5555892657c3d9356e.tar.gz
prelink-cross-998008fdec4d86e1f9f14f5555892657c3d9356e.tar.bz2
prelink-cross-998008fdec4d86e1f9f14f5555892657c3d9356e.zip
Merge to r174 -- cleanup
2010-06-15 Mark Hatle <mark.hatle@windriver.com> * Merge to upstream r174 * src/arch-mips.c, src/conflict.c, src/cxx.c, src/main.c, src/verify.c: fix items missed in the merge * Resync dso-readonly.c from dso.c
-rw-r--r--trunk/ChangeLog.cross6
-rw-r--r--trunk/src/arch-mips.c4
-rw-r--r--trunk/src/conflict.c3
-rw-r--r--trunk/src/cxx.c2
-rw-r--r--trunk/src/dso-readonly.c2
-rw-r--r--trunk/src/main.c2
-rw-r--r--trunk/src/verify.c2
7 files changed, 14 insertions, 7 deletions
diff --git a/trunk/ChangeLog.cross b/trunk/ChangeLog.cross
index 557ce43..520e18e 100644
--- a/trunk/ChangeLog.cross
+++ b/trunk/ChangeLog.cross
@@ -1,3 +1,9 @@
+2010-06-15 Mark Hatle <mark.hatle@windriver.com>
+ * Merge to upstream r174
+ * src/arch-mips.c, src/conflict.c, src/cxx.c, src/main.c, src/verify.c:
+ fix items missed in the merge
+ * Resync dso-readonly.c from dso.c
+
2010-06-14 Mark Hatle <mark.hatle@windriver.com>
* Integrate prelinker/cross-prelinking patches
diff --git a/trunk/src/arch-mips.c b/trunk/src/arch-mips.c
index 2e0ea4c..3825da3 100644
--- a/trunk/src/arch-mips.c
+++ b/trunk/src/arch-mips.c
@@ -901,9 +901,7 @@ mips_apply_reloc (struct prelink_info *info, GElf_Xword r_info,
break;
case R_MIPS_JUMP_SLOT:
- buf_write_ne32 (info->dso, buf,
- info->resolve (info, GELF_R_SYM (r_info),
- GELF_R_TYPE (r_info)));
+ buf_write_ne32 (info->dso, buf, value);
break;
case R_MIPS_COPY:
diff --git a/trunk/src/conflict.c b/trunk/src/conflict.c
index 3181de1..a1fb1ec 100644
--- a/trunk/src/conflict.c
+++ b/trunk/src/conflict.c
@@ -611,7 +611,8 @@ prelink_build_conflicts (struct prelink_info *info)
/* Record library's position in search scope into R_SYM field. */
for (j = first_conflict; j < info->conflict_rela_size; ++j)
info->conflict_rela[j].r_info
- = GELF_R_INFO (i, GELF_R_TYPE (info->conflict_rela[j].r_info));
+ = reloc_r_info (dso, i,
+ reloc_r_type (dso, info->conflict_rela[j].r_info));
if (dynamic_info_is_set (dso, DT_TEXTREL)
&& info->conflict_rela_size > first_conflict)
diff --git a/trunk/src/cxx.c b/trunk/src/cxx.c
index 438cdfe..4391ebe 100644
--- a/trunk/src/cxx.c
+++ b/trunk/src/cxx.c
@@ -610,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;
}
diff --git a/trunk/src/dso-readonly.c b/trunk/src/dso-readonly.c
index a7bf206..f780e9a 100644
--- a/trunk/src/dso-readonly.c
+++ b/trunk/src/dso-readonly.c
@@ -861,6 +861,7 @@ reopen_dso (DSO *dso, struct section_move *move, const char *temp_base)
}
else
{
+ memset (&data, 0, sizeof data);
data.d_type = ELF_T_NUM;
data1 = NULL;
while ((data1 = elf_getdata (dso->scn[j], data1))
@@ -1032,6 +1033,7 @@ error_out:
if (fd != -1)
{
wrap_unlink (filename);
+ fsync (fd);
close (fd);
}
return 1;
diff --git a/trunk/src/main.c b/trunk/src/main.c
index 2c442e8..4678ba4 100644
--- a/trunk/src/main.c
+++ b/trunk/src/main.c
@@ -315,7 +315,7 @@ main (int argc, char *argv[])
if (sysroot)
{
- sysroot = prelink_canonicalize (sysroot, NULL);
+ sysroot = canonicalize_file_name (sysroot);
if (sysroot == NULL)
error (EXIT_FAILURE, 0, "Could not canonicalize --root argument");
asprintf ((char **) &prelink_conf, "%s%s", sysroot, prelink_conf);
diff --git a/trunk/src/verify.c b/trunk/src/verify.c
index b04709b..6ba406d 100644
--- a/trunk/src/verify.c
+++ b/trunk/src/verify.c
@@ -304,7 +304,7 @@ prelink_verify (const char *filename)
if (prelink (dso2, ent))
goto failure_unlink;
- unlink (ent->filename);
+ wrap_unlink (ent->filename);
if (write_dso (dso2))
goto failure;