aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/src/prelink.c
AgeCommit message (Collapse)Author
2010-07-22Merge branch 'prelink_r174' into cross_prelinkMark Hatle
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
2010-07-22Add MIPS64 prelinking and other associated itemsMark Hatle
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
2010-07-22Merge branch 'prelink_20061201' into cross_prelinkMark Hatle
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
2007-10-09 * src/prelink.h (struct prelink_conflict): Add next2 field.jakub
(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
2007-10-09 * src/prelink.h (struct prelink_conflicts): New type.jakub
(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
2006-10-27 * src/prelink.h (DT_MIPS_RLD_VERSION): Define.jakub
(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
2006-10-27 * src/prelink.h (PLArch): Make the arch_prelink callback takejakub
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
2006-07-21Move code into trunk subdirectory.drow
git-svn-id: http://sourceware.org/svn/prelink@134 94c539fb-cf18-0410-b60f-edeeb537fa16