Age | Commit message (Collapse) | Author |
|
This patch fixes an incorrect shift by 58 instead of 56 when computing the
most significant byte when prelink adjusts debug info. Please commit if
OK.
This problem manifests itself as test failures for SPARC64 but not other
platforms I've tested, probably because the mmap_base setting for that
platform has a nonzero MSB and most others don't.
2009-08-06 Joseph Myers <joseph@codesourcery.com>
* src/dwarf2.c (dwarf2_write_le64, dwarf2_write_be64): Shift by 56
not 58 for MSB.
|
|
2009-03-19 Joseph Myers <joseph@codesourcery.com>
Issue #4626
* src/cache.c, src/dso-readonly.c, src/dso.c, src/execstack.c,
src/gather.c, src/layout.c, src/mapfile.c, src/verify.c: fsync
file descriptors before closing them.
Mark Hatle <mark.hatle@windriver.com>
* src/dso-readonly.c: sync with changes above
|
|
2008-09-23 Joseph Myers <joseph@codesourcery.com>
* src/arch-arm.c (arm_prelink_conflict_rela): Correct
R_ARM_TLS_TPOFF32 handling.
Conflicts:
trunk/ChangeLog.csl
|
|
2008-09-18 Joseph Myers <joseph@codesourcery.com>
* src/ld-libs.c (reloc_type_class, determine_tlsoffsets): Handle
SPARC.
* src/arch-sparc64.c (sparc64_prelink_rela,
sparc64_prelink_conflict_rela, sparc64_undo_prelink_rela,
sparc64_reloc_class): Handle TLS relocations.
(PL_ARCH(sparc64)): Update mmap_base and mmap_end for
TASK_UNMAPPED_BASE change to 0xfffff80100000000.
|
|
This patch adds TLS support to SPARC64 prelink - largely
cut-and-pasted from the 32-bit SPARC support - and updates it to work
with kernels postdating the patch
8bcd17411643beb9a601e032d0cf1016909a81d3 "[SPARC64]: Do not allow
mapping pages within 4GB of 64-bit VA hole." (March 2006), which
changed TASK_UNMAPPED_BASE causing anything prelinked at the old
address to segfault on startup. Please commit if OK.
2008-09-29 Joseph Myers <joseph@codesourcery.com>
* src/arch-sparc64.c (sparc64_prelink_rela,
sparc64_prelink_conflict_rela, sparc64_undo_prelink_rela,
sparc64_reloc_class): Handle TLS relocations.
(PL_ARCH): Update mmap_base and mmap_end for TASK_UNMAPPED_BASE
change to 0xfffff80100000000.
|
|
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
|
|
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/data.c (buf_read_une##nn): Fix the width of the data
transfer used.
|
|
2008-03-06 Daniel Jacobowitz <dan@codesourcery.com>
* src/ld-do-lookup.h: Check for STO_MIPS_PLT on MIPS.
* src/ld-libs.c (reloc_type_class): Handle copy and PLT relocs.
* src/prelink.h (R_MIPS_TLS_DTPMOD32, R_MIPS_TLS_DTPREL32)
(R_MIPS_TLS_TPREL32, R_MIPS_GLOB_DAT): Remove duplicate definitions.
(R_MIPS_COPY, R_MIPS_JUMP_SLOT, STO_MIPS_PLT, DT_MIPS_PLTGOT)
(DT_MIPS_PLTNO, DT_MIPS_RWPLT): Define.
(DSO): Add info_DT_MIPS_PLTGOT.
* src/arch-mips.c (mips_prelink_reloc): Handle R_MIPS_JUMP_SLOT and
R_MIPS_COPY.
(mips_prelink_conflict_reloc): Handle R_MIPS_COPY.
(mips_apply_conflict_rela): Handle R_MIPS_JUMP_SLOT.
(mips_apply_reloc): Handle R_MIPS_JUMP_SLOT and R_MIPS_COPY.
(mips_rel_to_rela, mips_rela_to_rel): Handle R_MIPS_COPY.
(mips_need_rel_to_rela): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
Correct error message.
(mips_reloc_class): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT. Use
RTYPE_CLASS_VALID by default.
(mips_arch_prelink): Save .plt in gotplt[1].
(mips_arch_undo_prelink): Clear gotplt[1].
(mips_undo_prelink_rel): Undo R_MIPS_JUMP_SLOT relocations.
(PL_ARCH): Set R_COPY and R_JMP_SLOT.
* src/dso.c (read_dynamic): Save DT_MIPS_PLTGOT.
Conflicts:
trunk/ChangeLog.csl
|
|
2007-07-09 Daniel Jacobowitz <dan@codesourcery.com>
Issue #1816
* src/wrap-file.c (chroot_canon): Delete.
(sysroot_file_name): Use canon_filename.
(unsysroot_file_name): Make global.
(wrap_canonicalize_file_name): Delete.
* src/ld-libs.c (load_dsos): Use prelink_canonicalize.
* src/canonicalize.c (canon_filename): Make global. Add chroot,
allow_last_link, allow_missing arguments. Handle links inside
a chroot. Handle canonicalizing the current directory. Remove
debugging output.
(prelink_canonicalize): Update. Use unsysroot_file_name.
* src/prelink.h (wrap_canonicalize_file_name): Delete prototype.
|
|
2007-03-02 Sandra Loosemore <sandra@codesourcery.com>
* doc/prelink.8: Copy edit. Add entry for --root option. Update
list of unsupported systems.
|
|
2007-02-16 Daniel Jacobowitz <dan@codesourcery.com>
* src/prelink.h (sysroot_file_name): Declare.
* src/wrap-file.c (sysroot_file_name): match declaration
* src/ld-libs.c (load_dsos): Take host_paths argument. Do not attempt
to canonicalize host filenames within the sysroot. Always set
canon_filename.
(process_one_dso): Update call to load_dsos. Do not redo call to
wrap_canonicalize_file_name.
|
|
2006-11-30 Mark Shinwell <shinwell@codesourcery.com>
* configure.in: Recognize --with-pkgversion and ---with-bugurl.
* src/Makefile.am: Pass package version and bug URL through
AM_CFLAGS, together with the new EXECSTACK_PROG.
* src/main.c: Use PKGVERSION and REPORT_BUGS_TO.
* src/execstack.c: Likewise. Also use EXECSTACK_PROG.
Mark Hatle <mark.hatle@windriver.com>
* src/ld-libs.c: Use PRELINK_RTLD_PROG, PKGVERSION and REPORT_BUGS_TO
* src/execstack.c: Use EXECSTACK_PROG in (argp_doc)
|
|
2006-11-30 Mark Shinwell <shinwell@codesourcery.com>
* wrap-file.c (wrap_stat_body): New.
(wrap_lstat64, wrap_stat64): Use wrap_stat_body.
* gather.c (add_to_blacklist): Add missing wrap_stat64
|
|
2006-11-28 Mark Shinwell <shinwell@codesourcery.com>
* src/layout.c (layout_libs): Add assertion to check for buffer
overflow.
* src/ld-libs.c (find_lib_in_path): Add "machine" argument.
Skip libraries whose ELF machine type field does not match
that argument.
(find_lib_by_soname): Add "machine" argument. Pass it to
find_lib_in_path.
(load_dsos): Determine machine type of input DSO. Pass it
to find_lib_by_soname.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Conflicts:
trunk/ChangeLog.csl
|
|
2006-11-28 Mark Shinwell <shinwell@codesourcery.com>
* src/gather.c (maybe_pie): New.
(gather_func): Use it.
|
|
2006-11-28 Mark Shinwell <shinwell@codesourcery.com>
* src/canonicalize.c: Add prelink.h include directive.
Use wrap_readlink and wrap_lstat64.
* src/prelink.h: Declare wrap_readlink.
* src/wrap-file.c (wrap_readlink): New.
|
|
2006-10-13 Daniel Jacobowitz <dan@codesourcery.com>
* src/execle_open.c (execve_open): Add an error message if execve
fails.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
2006-10-03 Richard Sandiford <richard@codesourcery.com>
* configure.in (AC_CANONICAL_HOST): Remove in favour of...
(AC_CANONICAL_SYSTEM): ...this new directive.
(AC_ARG_PROGRAM): New directive.
* src/Makefile.am (AM_CFLAGS): Define PRELINK_PROG, PRELINK_RTLD_PROG
and EXEEXT.
(execstack_LDADD): Add -liberty.
* src/execstack.c (program_path, prelink_path): New variables.
(execstack_make_rdwr): Initialize prelink_path if it has not
been set yet. Use make_relative_prefix, PRELINK_PROG and EXEEXT
to get the full pathname of the prelink executable. Pass this path
to execl() as the name of executable file.
(main): Initialize program_path.
* src/main.c (argp_program_version, argp_doc): Use PRELINK_PROG as
the program name.
(main): Handle empty --rtld= arguments first. Always use
make_relative_prefix to work out the path of the defalt rtld
executable. Also use PRELINK_RTLD and EXEEXT for this purpose.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Add --disable-selinux. Also remove static linking as many modern
components do not support static linking.
|
|
* src/arch-mips.c: add /lib32/ld.so.1 as an alternative 32-bit linker
* src/ld-libs.c: add a check for MIPS n32, and adjust ld_dirs as
necessary
|
|
My original binutils patches for MIPS prelink support were against 2.17,
and reserved room for a program header without actually creating one.
The mainline (now 2.18) binutils patches ended up adding a PT_NULL
header instead. This was needed because of mainline's SIZEOF_HEADER
relaxation and was probably a better idea anyway.
The patch below therefore teaches the prelinker to remove a PT_NULL
header if it needs to find room for a PT_LOAD header. Tested on the
MIPS port, where it allows a sysroot built with the mainline binutils
to be fully prelinked. Also tested on x86.
The patch involves a lot of reidentation, so for reference, I've
attached two versions: first the real patch, then the -b form.
Richard
200x-xx-xx Richard Sandiford <richard@codesourcery.com>
* src/space.c (find_readonly_space): If a new PT_LOAD header is needed,
first try removing a PT_NULL header.
|
|
2006-09-27 Richard Sandiford <richard@codesourcery.com>
* src/ld-libs.c (reloc_type_class): Handle EM_MIPS.
(do_mips_global_relocs): New function.
(handle_relocs_in_entry): Call it.
(determine_tlsoffsets): Handle EM_MIPS.
2006-09-27 Richard Sandiford <richard@codesourcery.com>
* src/ld-libs.c (do_reloc): New function, split out from
do_rel_section. Take the symbol and relocation type as arguments.
(do_rel_section): Call it.
(handle_relocs_in_entry): New function.
(handle_relocs): Call it.
|
|
Update to the latest version of elf.h that includes MIPS prelink.
|
|
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
|
|
Source: Wind River Systems
Support big endian ARM prelinking. The previous code only supported
little endian.
We use the arch-sh code as an example of how to support an architecture
that supports both big and little endian.
|
|
Source: Wind River Systems
The line in "prelink_conflict_rela" appears to be a copy/
paste mistake. With the line there, segfaults occur in
the tls5 and tls6 tests.
|
|
Source: Wind River Systems
Follow on to the prelink-endian-swap patch. This includes
files added for cross-prelinking.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: Wind River Systems
When using elfutils/libelf in prelink, it attempts to be helpful
and do endian translations of most types. The ELF_T_BYTE type is not
translated, and is used for the majority of the RELOCs, but not all
of them.
The patch only does internal endian swapping when the type is
ELF_T_BYTE.
|
|
Source: Wind River Systems
The purpose of this patch is to allow for the testsuite to be run
using the cross prelink. This disables the run-time test, but will
keep all of the prelink testing. To have full test coverage you will
want to execute these tests on the target as well.
|
|
Source: Wind River Systems
Change the reported version to be Wind River specific.
Add help to prelink-rtld
|
|
Source: Wind River Systems
Add --root argument to the prelink-rtld to make it easier to use on the
command line.
|
|
Source: MontaVista Software, Inc. & CodeSourcery, LLC.
Code was merged forward to the latest version by Wind River Systems
Code merged from:
prelink-cross-rtld.patch
cross-ldd.patch
prelink-arm-tfunc.patch
* Handle STT_ARM_TFUNC in the prelinker.
prelink-glibc-function-name-conflict.patch
* Changed the function name _dl_name_match_p symbol to
* _dl_soname_match_p to avoid a conflict with glibc
* where there is a function with same name.
prelink-no-sonames.patch
|
|
Source: CodeSourcery, LLC.
When prelinking a system, check to see if we modified /sbin/init, if we
did re-run it.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: CodeSourcery, LLC.
Description:
Add new ARM EABI support
Add new dynamic_linker_alt as older versions of ARM used a different dynamic linker name
Handle STT_ARM_TFUNC in the prelinker.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: CodeSourcery, LLC.
Description:
Add new dynamic_linker_alt as some architectures (ARM) may have an
older dynamic linker name.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: MontaVista Software, Inc.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: MontaVista Software, Inc.
Incorporates the resolve-symlinks.patch as well:
Correct some handling of symlinks. This fixes symlinks to libraries being
occasionally replaced with their targets.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
* Fri Jul 28 2006 Alexandre Oliva <aoliva@redhat.com> 0.3.9-2
- Avoid SEGFAULT when sorting cache entries (#197451)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: MontaVista Software, Inc.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: MontaVista Software, Inc.
Don't adjust reloc sections for debug info.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
Source: glibc 2.3.6
Updated version copied from glibc.
|
|
Source: MontaVista Software, Inc.
Update SH architecture definitions to fix a few misc problems
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
|
|
failures between closing the unprelinked dso and unlinking
ent->filename.
git-svn-id: http://sourceware.org/svn/prelink@151 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
git-svn-id: http://sourceware.org/svn/prelink@150 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
* testsuite/reloc2.sh: Likewise.
git-svn-id: http://sourceware.org/svn/prelink@149 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
* testsuite/reloc5.c (main): Make the printed inline asm globalize
testzero.
git-svn-id: http://sourceware.org/svn/prelink@148 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
git-svn-id: http://sourceware.org/svn/prelink@147 94c539fb-cf18-0410-b60f-edeeb537fa16
|
|
* src/Makefile.in: Regenerate.
* src/arch-mips.c: New file.
git-svn-id: http://sourceware.org/svn/prelink@146 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
|
|
in the PT_PHDR segment.
git-svn-id: http://sourceware.org/svn/prelink@144 94c539fb-cf18-0410-b60f-edeeb537fa16
|