diff options
-rw-r--r-- | trunk/ChangeLog.cross | 6 | ||||
-rw-r--r-- | trunk/src/arch-mips.c | 4 | ||||
-rw-r--r-- | trunk/src/conflict.c | 3 | ||||
-rw-r--r-- | trunk/src/cxx.c | 2 | ||||
-rw-r--r-- | trunk/src/dso-readonly.c | 2 | ||||
-rw-r--r-- | trunk/src/main.c | 2 | ||||
-rw-r--r-- | trunk/src/verify.c | 2 |
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; |