diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2007-12-24 16:55:39 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2007-12-24 16:55:39 +0000 |
commit | 147d51c2327f0f36ddab7e2766087a902f8d83c1 (patch) | |
tree | f336d7d660e7da2e09b28179f134e0ce1ef90a73 /bfd/elfcode.h | |
parent | 5a517ebd81c05da8cf39fd9a9b8dddb4042009f6 (diff) | |
download | gdb-147d51c2327f0f36ddab7e2766087a902f8d83c1.zip gdb-147d51c2327f0f36ddab7e2766087a902f8d83c1.tar.gz gdb-147d51c2327f0f36ddab7e2766087a902f8d83c1.tar.bz2 |
2007-12-24 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/5449
* elf.c (rewrite_elf_program_header): Don't adjust p_paddr if
p_paddr is set to 0.
(copy_private_bfd_data): Call rewrite_elf_program_header if
p_paddr is set to 0.
* elfcode.h (elf_swap_phdr_out): Set p_paddr to 0 if needed.
* elfxx-ia64.c (ELF_MAXPAGESIZE): Don't redefine it for HPUX.
Diffstat (limited to 'bfd/elfcode.h')
-rw-r--r-- | bfd/elfcode.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bfd/elfcode.h b/bfd/elfcode.h index ea2a6d3..969c25a 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -370,11 +370,17 @@ elf_swap_phdr_out (bfd *abfd, const Elf_Internal_Phdr *src, Elf_External_Phdr *dst) { + const struct elf_backend_data *bed; + bfd_vma p_paddr; + + bed = get_elf_backend_data (abfd); + p_paddr = bed->want_p_paddr_set_to_zero ? 0 : src->p_paddr; + /* note that all elements of dst are *arrays of unsigned char* already... */ H_PUT_32 (abfd, src->p_type, dst->p_type); H_PUT_WORD (abfd, src->p_offset, dst->p_offset); H_PUT_WORD (abfd, src->p_vaddr, dst->p_vaddr); - H_PUT_WORD (abfd, src->p_paddr, dst->p_paddr); + H_PUT_WORD (abfd, p_paddr, dst->p_paddr); H_PUT_WORD (abfd, src->p_filesz, dst->p_filesz); H_PUT_WORD (abfd, src->p_memsz, dst->p_memsz); H_PUT_32 (abfd, src->p_flags, dst->p_flags); |