Age | Commit message (Collapse) | Author |
|
Conflicts:
trunk/doc/prelink.8
trunk/src/Makefile.am
trunk/src/arch-arm.c
trunk/src/arch-mips.c
trunk/src/arch-sparc64.c
trunk/src/conflict.c
trunk/src/cxx.c
trunk/src/prelink.h
trunk/src/space.c
trunk/testsuite/cxx1.sh
trunk/testsuite/shuffle2.c
|
|
2008-10-02 Maciej W. Rozycki <macro@codesourcery.com>
* src/arch-mips.c (mips_prelink_reloc): Do not complain about
TLS_DTPMOD32 or TLS_DTPMOD64 relocations found in executables.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/prelink.h (Elf64_Byte): New definition.
(R_MIPS_TLS_DTPMOD64): New macro.
(R_MIPS_TLS_DTPREL64): Likewise.
(R_MIPS_TLS_TPREL64): Likewise.
(RSS_UNDEF): Likewise.
(PL_ARCH): Use plarch_##F as the name of the struct in all
variants.
* src/reloc-info.c: New file.
* src/reloc-info.h: Likewise.
* src/arch-mips.c (mips_buf_read_addr): New function.
(mips_buf_write_addr): Likewise.
(mips_arch_adjust): Replace calls to buf_read_une32() and
buf_write_ne32() with ones to mips_buf_read_addr() and
mips_buf_write_addr() respectively.
(mips_read_addend): Rename to...
(mips_read_32bit_addend): ... this.
(mips_write_addend): Rename to...
(mips_write_32bit_addend): ... this.
(mips_read_64bit_addend): New function.
(mips_write_64bit_addend): Likewise.
(mips_adjust_reloc): Handle 64-bit REL relocations. Use
reloc_r_sym() and reloc_r_type() in place of GELF_R_SYM() and
GELF_R_TYPE() respectively.
(mips_prelink_64bit_reloc): New function.
(mips_prelink_reloc): Handle 64-bit REL and GLOB_DAT relocations.
Handle TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations.
Use reloc_r_sym() and reloc_r_type().
(mips_prelink_rel): Handle 64-bit REL relocations. Use
reloc_r_sym(), reloc_r_type() and reloc_r_info_ext() (replacing
GELF_R_INFO()).
(mips_prelink_conflict_reloc): Handle 64-bit REL relocations.
Handle TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations.
Use reloc_r_sym(), reloc_r_type() and reloc_r_info_ext().
(mips_arch_prelink_conflict): Use mips_buf_read_addr(). Use
reloc_r_info_ext().
(mips_apply_conflict_rela): Handle 64-bit REL relocations. Use
reloc_r_type(). Use mips_buf_read_addr() and
mips_buf_write_addr().
(mips_apply_reloc): Handle 64-bit REL relocations. Use
reloc_r_sym() and reloc_r_type().
(mips_rel_to_rela): Handle 64-bit REL relocations. Handle
TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations. Use
reloc_r_sym() and reloc_r_type().
(mips_rela_to_rel): Handle 64-bit REL and GLOB_DAT relocations.
Handle TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations.
Use reloc_r_sym() and reloc_r_type().
(mips_need_rel_to_rela): Use data obtained with gelfx_getshdr() to
determine the size of a relocation entry. Use gelfx_getrel() to
retrieve them. Handle 64-bit REL relocations. Handle
TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations. Use
reloc_r_sym() and reloc_r_type() instead of ELF32_R_SYM() and
ELF32_R_TYPE() respectively.
(mips_reloc_class): Handle TLS_DTPMOD64, TLS_DTPREL64 and
TLS_TPREL64 relocations.
(mips_arch_prelink): Use mips_buf_read_addr() and
mips_buf_write_addr().
(mips_arch_undo_prelink): Likewise.
(mips_undo_prelink_rel): Handle 64-bit GLOB_DAT relocations. Use
reloc_r_sym(), reloc_r_type() and reloc_r_info_ext().
(mips64): New PL_ARCH.
* src/prelink.c (prelink_prepare): Handle SHT_MIPS_OPTIONS.
* src/conflict.c (conflict_rela_cmp_dso): New variable.
(conflict_rela_cmp): Use conflict_rela_cmp_dso and reloc_r_sym().
(get_relocated_mem): Use reloc_r_type().
(prelink_add_copy_rel): Use reloc_r_sym() and reloc_r_type().
(prelink_build_conflicts): Use reloc_r_sym(), reloc_r_type() and
reloc_r_info(). Pass dso to conflict_rela_cmp() through
conflict_rela_cmp_dso.
(prelink_find_copy_rela): Use reloc_r_type().
* src/cxx.c (remove_redundant_cxx_conflicts): Use reloc_r_sym(),
reloc_r_type() and reloc_r_info().
* src/ld-libs.c (do_rel_section): Use reloc_r_sym() and
reloc_r_type().
* src/Makefile.am (common_SOURCES): Add reloc-info.c and
reloc-info.h.
(prelink_rtld_SOURCES): Likewise.
* src/Makefile.in: Regenerate.
* configure.in: Check for the Elf64_Byte type. Require autoconf
2.50.
* configure: Regenerate.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/arch-mips.c (mips_undo_prelink_rel): Fix formatting.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/arch-mips.c (mips_init_local_got_iterator): Use ELF_T_ADDR
to determine the width of GOT entries.
(mips_init_global_got_iterator): Likewise.
200?-??-?? CodeSourcery, LLC.
* src/prelink.h: define PL_ARCH(arch) macro
* update each arch-<arch>.c file to use the new macro
Add attribution
|
|
Conflicts:
src/data.c
trunk/src/dso.c
trunk/src/prelink.h
trunk/testsuite/reloc5.c
trunk/testsuite/shuffle2.c
Updated versioning in:
trunk/src/execstack.c
trunk/src/ld-libs.c
trunk/src/main.c
* src/arch-arm.c: remove read_une32, write_ne32, buf_write_ne32,
buf_read_une32
* src/dso-readonly.c: sync to changes in src/dso.c
|
|
(struct prelink_conflicts): Add hash2 field.
* src/get.c (prelink_record_relocations): Clear next2 fields.
* src/prelink.c (free_info): Also free hash2 table.
* src/cxx.c (remove_redundant_cxx_conflicts): Populate hash2
if not populated yet, use it to speed up pltref checking.
git-svn-id: http://sourceware.org/svn/prelink@160 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
(struct prelink_info): Change type of conflicts and curconflicts
fields to struct prelink_conflicts *.
* src/get.c (conflict_hash_init): New function.
(prelink_record_relocations): Adjust initialization of conflicts
array. If conflict linked lists has more than 15 entries, use
hash table with chains.
* src/prelink.c (free_info): Handle freeing conflict list using a hash
table.
* src/fptr.c (opd_init): Only walk corresponding hash chain if
conflict list is using a hash table.
* src/conflict.c (prelink_conflict): Likewise.
(prelink_build_conflicts): Handle conflict list using a hash table.
* src/cxx.c (remove_redundant_cxx_conflicts): Likewise. Only walk
corresponding hash chain if conflict list is using a hash table.
git-svn-id: http://sourceware.org/svn/prelink@159 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
(DT_MIPS_TIME_STAMP): Likewise.
(DT_MIPS_ICHECKSUM): Likewise.
(DT_MIPS_IVERSION): Likewise.
(DT_MIPS_FLAGS): Likewise.
(DT_MIPS_BASE_ADDRESS): Likewise.
(DT_MIPS_CONFLICT): Likewise.
(DT_MIPS_LIBLIST): Likewise.
(DT_MIPS_LOCAL_GOTNO): Likewise.
(DT_MIPS_CONFLICTNO): Likewise.
(DT_MIPS_LIBLISTNO): Likewise.
(DT_MIPS_SYMTABNO): Likewise.
(DT_MIPS_UNREFEXTNO): Likewise.
(DT_MIPS_GOTSYM): Likewise.
(DT_MIPS_HIPAGENO): Likewise.
(DT_MIPS_RLD_MAP): Likewise.
(R_MIPS_TLS_DTPMOD): Likewise.
(R_MIPS_TLS_DTPREL): Likewise.
(R_MIPS_TLS_TPREL): Likewise.
(R_MIPS_GLOB_DAT): Likewise.
(DSO): Add info_DT_MIPS_LOCAL_GOTNO, info_DT_MIPS_GOTSYM,
and info_DT_MIPS_SYMTABNO.
* src/dso.c (read_dynamic): Initialize the new DSO fields.
(adjust_symbol_p): Handle stub values on MIPS.
* src/prelink.c (prelink_prepare): Handle SHT_DYNAMIC and
SHT_MIPS_REGINFO on MIPS.
git-svn-id: http://sourceware.org/svn/prelink@145 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
a "struct prelink_info *" argument, not a "DSO *" argument.
* src/prelink.c (prelink): Adjust call accordingly.
* src/arch-alpha.c (alpha_arch_prelink): Adjust definition accordingly.
* src/arch-arm.c (arm_arch_prelink): Likewise.
* src/arch-cris.c (cris_arch_prelink): Likewise.
* src/arch-i386.c (i386_arch_prelink): Likewise.
* src/arch-ia64.c (ia64_arch_prelink): Likewise.
* src/arch-ppc.c (ppc_arch_prelink): Likewise.
* src/arch-s390.c (s390_arch_prelink): Likewise
* src/arch-s390x.c (s390x_arch_prelink): Likewise
* src/arch-sh.c (sh_arch_prelink): Likewise.
* src/arch-sparc64.c (sparc64_arch_prelink): Likewise.
* src/arch-sparc.c (sparc_arch_prelink): Likewise
* src/arch-x86_64.c (x86_64_arch_prelink): Likewise.
git-svn-id: http://sourceware.org/svn/prelink@140 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
git-svn-id: http://sourceware.org/svn/prelink@134 94c539fb-cf18-0410-b60f-edeeb537fa16
|