diff options
author | Alan Modra <amodra@gmail.com> | 2004-06-29 14:13:47 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2004-06-29 14:13:47 +0000 |
commit | 1a23a9e6139ff1d1b19d242cf9c47f06c326df08 (patch) | |
tree | 768ba9a14f576385aa26e83c963c55f3a835a777 /bfd/section.c | |
parent | e87a64e1f0fb7718a214f10d6c31ce2050d4a760 (diff) | |
download | gdb-1a23a9e6139ff1d1b19d242cf9c47f06c326df08.zip gdb-1a23a9e6139ff1d1b19d242cf9c47f06c326df08.tar.gz gdb-1a23a9e6139ff1d1b19d242cf9c47f06c326df08.tar.bz2 |
bfd/
* elf64-mmix.c (mmix_set_relaxable_size): Save original size in
rawsize.
(mmix_elf_perform_relocation): Adjust for above change.
(mmix_elf_relocate_section): Likewise.
(mmix_elf_relax_section): Likewise. Use output_section->rawsize.
(mmix_elf_get_section_contents): Delete.
(bfd_elf64_get_section_contents): Delete.
(mmix_elf_relocate_section): Zero stub area.
* linker.c (default_indirect_link_order): Alloc max of section size
and rawsize.
* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
* section.c (bfd_malloc_and_get_section): Likewise.
(struct bfd_section): Update rawsize comment.
* bfd-in2.h: Regenerate.
ld/
* ldlang.c (lang_reset_memory_regions): Save last relax pass section
size in rawsize.
Diffstat (limited to 'bfd/section.c')
-rw-r--r-- | bfd/section.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/bfd/section.c b/bfd/section.c index 70727ac..e178f58 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -424,13 +424,14 @@ CODE_FRAGMENT . size of <<.bss>>). *} . bfd_size_type size; . -. {* The original size on disk of the section, in octets. This field -. is used by the linker relaxation code. It is currently only set -. for sections where the linker relaxation scheme doesn't cache -. altered section and reloc contents (stabs, eh_frame, SEC_MERGE), -. and thus the original size needs to be kept to read the section -. multiple times. If non-zero, rawsize will be used in address -. checks during relocation and to read section contents. *} +. {* For input sections, the original size on disk of the section, in +. octets. This field is used by the linker relaxation code. It is +. currently only set for sections where the linker relaxation scheme +. doesn't cache altered section and reloc contents (stabs, eh_frame, +. SEC_MERGE, some coff relaxing targets), and thus the original size +. needs to be kept to read the section multiple times. +. For output sections, rawsize holds the section size calculated on +. a previous linker relaxation pass. *} . bfd_size_type rawsize; . . {* If this section is going to be output, then this value is the @@ -1379,7 +1380,7 @@ bfd_malloc_and_get_section (bfd *abfd, sec_ptr sec, bfd_byte **buf) if (sz == 0) return TRUE; - p = bfd_malloc (sz); + p = bfd_malloc (sec->rawsize > sec->size ? sec->rawsize : sec->size); if (p == NULL) return FALSE; *buf = p; |