diff options
author | Alan Modra <amodra@bigpond.net.au> | 2002-11-12 07:56:38 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2002-11-12 07:56:38 +0000 |
commit | 02dee75dc01c0d990f1a6e2f5ef8e3022ea565ff (patch) | |
tree | 0d4a7dfaf2216a9f7eeed8fa541fb4afdb6eb5cb /ld/emultempl/hppaelf.em | |
parent | f8af41b53485883cc25c20c345af7776490e51db (diff) | |
download | binutils-redhat-02dee75dc01c0d990f1a6e2f5ef8e3022ea565ff.tar.gz |
* emultempl/ppc64elf.em (ppc_before_allocation): New function.
(LDEMUL_BEFORE_ALLOCATION): Define.
(gld${EMULATION_NAME}_finish): Run discard_info for relocatable
linking.
* emultemp/hppaelf.em ((gld${EMULATION_NAME}_finish): Likewise.
Diffstat (limited to 'ld/emultempl/hppaelf.em')
-rw-r--r-- | ld/emultempl/hppaelf.em | 72 |
1 files changed, 37 insertions, 35 deletions
diff --git a/ld/emultempl/hppaelf.em b/ld/emultempl/hppaelf.em index 490ff070d1..394f28e166 100644 --- a/ld/emultempl/hppaelf.em +++ b/ld/emultempl/hppaelf.em @@ -263,13 +263,6 @@ build_section_lists (statement) static void gld${EMULATION_NAME}_finish () { - int ret; - - /* If generating a relocatable output file, then we don't - have to examine the relocs. */ - if (link_info.relocateable) - return; - /* bfd_elf32_discard_info just plays with debugging sections, ie. doesn't affect any code, so we can delay resizing the sections. It's likely we'll resize everything in the process of @@ -277,46 +270,55 @@ gld${EMULATION_NAME}_finish () if (bfd_elf${ELFSIZE}_discard_info (output_bfd, &link_info)) need_laying_out = 1; - ret = elf32_hppa_setup_section_lists (output_bfd, &link_info); - if (ret != 0) + /* If generating a relocatable output file, then we don't + have to examine the relocs. */ + if (! link_info.relocateable) { - if (ret < 0) + int ret = elf32_hppa_setup_section_lists (output_bfd, &link_info); + + if (ret != 0) { - einfo ("%X%P: can not size stub section: %E\n"); - return; - } + if (ret < 0) + { + einfo ("%X%P: can not size stub section: %E\n"); + return; + } - lang_for_each_statement (build_section_lists); + lang_for_each_statement (build_section_lists); - /* Call into the BFD backend to do the real work. */ - if (! elf32_hppa_size_stubs (output_bfd, - stub_file->the_bfd, - &link_info, - multi_subspace, - group_size, - &hppaelf_add_stub_section, - &hppaelf_layout_sections_again)) - { - einfo ("%X%P: can not size stub section: %E\n"); - return; + /* Call into the BFD backend to do the real work. */ + if (! elf32_hppa_size_stubs (output_bfd, + stub_file->the_bfd, + &link_info, + multi_subspace, + group_size, + &hppaelf_add_stub_section, + &hppaelf_layout_sections_again)) + { + einfo ("%X%P: can not size stub section: %E\n"); + return; + } } } if (need_laying_out) hppaelf_layout_sections_again (); - /* Set the global data pointer. */ - if (! elf32_hppa_set_gp (output_bfd, &link_info)) + if (! link_info.relocateable) { - einfo ("%X%P: can not set gp\n"); - return; - } + /* Set the global data pointer. */ + if (! elf32_hppa_set_gp (output_bfd, &link_info)) + { + einfo ("%X%P: can not set gp\n"); + return; + } - /* Now build the linker stubs. */ - if (stub_file->the_bfd->sections != NULL) - { - if (! elf32_hppa_build_stubs (&link_info)) - einfo ("%X%P: can not build stubs: %E\n"); + /* Now build the linker stubs. */ + if (stub_file->the_bfd->sections != NULL) + { + if (! elf32_hppa_build_stubs (&link_info)) + einfo ("%X%P: can not build stubs: %E\n"); + } } } |