diff options
Diffstat (limited to 'ld')
37 files changed, 206 insertions, 168 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 3291a60..5462143 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,41 @@ +2003-06-25 Alan Modra <amodra@bigpond.net.au> + + * ld.texinfo: Correct spelling of "relocatable". + * ldctor.c: Likewise + * ldexp.c: Likewise + * ldfile.c: Likewise + * ldint.texinfo: Likewise + * ldlang.c: Likewise + * ldmain.c: Likewise + * ldwrite.c: Likewise + * lexsup.c: Likewise + * emultempl/aix.em: Likewise + * emultempl/alphaelf.em: Likewise + * emultempl/armcoff.em: Likewise + * emultempl/armelf_oabi.em: Likewise + * emultempl/beos.em: Likewise + * emultempl/elf32.em: Likewise + * emultempl/generic.em: Likewise + * emultempl/gld960.em: Likewise + * emultempl/gld960c.em: Likewise + * emultempl/hppaelf.em: Likewise + * emultempl/linux.em: Likewise + * emultempl/lnk960.em: Likewise + * emultempl/m68hc1xelf.em: Likewise + * emultempl/m68kcoff.em: Likewise + * emultempl/m68kelf.em: Likewise + * emultempl/mipsecoff.em: Likewise + * emultempl/mipself.em: Likewise + * emultempl/mmix-elfnmmo.em: Likewise + * emultempl/mmo.em: Likewise + * emultempl/needrelax.em: Likewise + * emultempl/pe.em: Likewise + * emultempl/ppc64elf.em: Likewise + * emultempl/sh64elf.em: Likewise + * emultempl/sunos.em: Likewise + * emultempl/ticoff.em: Likewise + * emultempl/xtensaelf.em: Likewise + 2003-06-24 Alan Modra <amodra@bigpond.net.au> * emultempl/ppc32elf.em: Convert to C90. @@ -766,7 +804,7 @@ 2002-01-14 Charles Wilson <cwilson@ece.gatech.edu> - * ld/ld.texinfo (node WIN32): Some clarifications + * ld.texinfo (node WIN32): Some clarifications and formatting fixups. 2003-01-09 Chris Demetriou <cgd@broadcom.com> @@ -820,7 +858,7 @@ 2003-01-03 Charles Wilson <cwilson@ece.gatech.edu> - * ld/pe-dll.c (autofilter_symbollist): Add cygwin_crt0. + * pe-dll.c (autofilter_symbollist): Add cygwin_crt0. 2003-01-04 Daniel Jacobowitz <drow@mvista.com> @@ -873,7 +911,7 @@ 2002-12-30 Ralf Habacker <Ralf.Habacker@freenet.de> Charles Wilson <cwilson@ece.gatech.edu> - * ld/config.in (HAVE_REALPATH): New entry. + * config.in (HAVE_REALPATH): New entry. (HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H): Removed: obsolete. 2002-12-30 Ralf Habacker <ralf.habacker@freenet.de> @@ -923,7 +961,7 @@ 2002-12-17 Ralf Habacker <ralf.habacker@freenet.de> - * ld/emultempl/pe.em (pe_find_data_imports): Don't search for data + * emultempl/pe.em (pe_find_data_imports): Don't search for data import when auto-import is disabled. 2002-12-17 Danny Smith <dannysmith@users.sourceforge.net> @@ -1388,8 +1426,8 @@ * configure.in: added --with-lib-path argument to ld's configure to set LIB_PATH. - * ld/NEWS: Document new switch. - * ld/README: Mention new switch. + * NEWS: Document new switch. + * README: Mention new switch. * configure: Regenerate. * Makefile.in: Regenerate. @@ -1696,7 +1734,7 @@ 2002-06-20 Nathanael Nerode <neroden@twcny.rr.com> - * ld/configure.host (romp): Drop support. + * configure.host (romp): Drop support. 2002-06-18 Chris Demetriou <cgd@broadcom.com> @@ -1751,9 +1789,9 @@ 2002-06-07 Charles Wilson <cwilson@ece.gatech.edu> - * ld/ldmain.c (main): initialize link_info.pei386_auto_import + * ldmain.c (main): initialize link_info.pei386_auto_import to -1 == implicit enable. - * ld/emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): + * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): initialize link_info.pei386_auto_import to -1 == implicit enable. (gld_${EMULATION_NAME}_parse_args): When processing @@ -2177,7 +2215,7 @@ 2002-04-07 matthew green <mrg@redhat.com> - * ld/configure.host (*-*-netbsd*): Add support for NetBSD/ELF. + * configure.host (*-*-netbsd*): Add support for NetBSD/ELF. 2002-04-04 Alan Modra <amodra@bigpond.net.au> @@ -2768,8 +2806,8 @@ * configure.tgt (sh*le-*-netbsdelf*): New target. (sh*-*-netbsdelf*): New target. * emulparams/shelf.sh: Document that shelf_nbsd.sh sources this file. - * ld/emulparams/shelf_nbsd.sh: New emulation. - * ld/emulparams/shlelf_nbsd.sh: New emulation. + * emulparams/shelf_nbsd.sh: New emulation. + * emulparams/shlelf_nbsd.sh: New emulation. 2002-01-07 Nick Clifton <nickc@cambridge.redhat.com> @@ -170,7 +170,7 @@ not copied into the output file. This is used by glibc. * When an ELF section named .gnu.warning.SYMBOL is encountered in an input file, and the symbol SYMBOL is referenced by some object file, the contents of the section are displayed as an error message. The section is not copied into -the output file, unless doing a relocateable or shared link. This is used by +the output file, unless doing a relocatable or shared link. This is used by glibc. * New options -split-by-reloc and -split-by-file. diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 910f831..ad4c6dc 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -613,15 +613,15 @@ gld${EMULATION_NAME}_after_open () struct set_info *p; /* Call ldctor_build_sets, after pretending that this is a - relocateable link. We do this because AIX requires relocation + relocatable link. We do this because AIX requires relocation entries for all references to symbols, even in a final executable. Of course, we only want to do this if we are producing an XCOFF output file. */ - r = link_info.relocateable; + r = link_info.relocatable; if (strstr (bfd_get_target (output_bfd), "xcoff") != NULL) - link_info.relocateable = TRUE; + link_info.relocatable = TRUE; ldctor_build_sets (); - link_info.relocateable = r; + link_info.relocatable = r; /* For each set, record the size, so that the XCOFF backend can output the correct csect length. */ @@ -1293,11 +1293,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -1314,9 +1314,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/alphaelf.em b/ld/emultempl/alphaelf.em index 4ff83cb..a1bb0c5 100644 --- a/ld/emultempl/alphaelf.em +++ b/ld/emultempl/alphaelf.em @@ -38,7 +38,7 @@ static int elf64alpha_32bit = 0; static void alpha_after_parse () { - if (elf64alpha_32bit && !link_info.shared && !link_info.relocateable) + if (elf64alpha_32bit && !link_info.shared && !link_info.relocatable) lang_section_start (".interp", exp_binop ('+', exp_intop (ALPHA_TEXT_START_32BIT), diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em index 1156658..15ebecf 100644 --- a/ld/emultempl/armcoff.em +++ b/ld/emultempl/armcoff.em @@ -224,11 +224,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -245,9 +245,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/armelf_oabi.em b/ld/emultempl/armelf_oabi.em index 555b947..99b18cd 100644 --- a/ld/emultempl/armelf_oabi.em +++ b/ld/emultempl/armelf_oabi.em @@ -113,11 +113,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -134,9 +134,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em index 3b84280..23b9dc5 100644 --- a/ld/emultempl/beos.em +++ b/ld/emultempl/beos.em @@ -394,7 +394,7 @@ gld_${EMULATION_NAME}_set_symbols() if (!init[IMAGEBASEOFF].inited) { - if (link_info.relocateable) + if (link_info.relocatable) init[IMAGEBASEOFF].value = 0; else if (init[DLLOFF].value) init[IMAGEBASEOFF].value = BEOS_DLL_IMAGE_BASE; @@ -402,8 +402,8 @@ gld_${EMULATION_NAME}_set_symbols() init[IMAGEBASEOFF].value = BEOS_EXE_IMAGE_BASE; } - /* Don't do any symbol assignments if this is a relocateable link. */ - if (link_info.relocateable) + /* Don't do any symbol assignments if this is a relocatable link. */ + if (link_info.relocatable) return; /* Glue the assignments into the abs section */ @@ -746,7 +746,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) If they're marked as COMDAT sections, we don't want .text\$foo to end up in .text and then have .text disappear because it's marked link-once-discard. */ - if (link_info.relocateable) + if (link_info.relocatable) return FALSE; secname = bfd_get_section_name (s->owner, s); @@ -832,11 +832,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 7c06820..85ca351 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -643,7 +643,7 @@ gld${EMULATION_NAME}_after_open () struct bfd_link_needed_list *needed, *l; /* We only need to worry about this when doing a final link. */ - if (link_info.relocateable || !link_info.executable) + if (link_info.relocatable || !link_info.executable) return; /* Get the list of files which appear in DT_NEEDED entries in @@ -1146,7 +1146,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) int isdyn = 0; secname = bfd_get_section_name (s->owner, s); - if (! link_info.relocateable + if (! link_info.relocatable && link_info.combreloc && (s->flags & SEC_ALLOC) && strncmp (secname, ".rel", 4) == 0) @@ -1181,7 +1181,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) /* If this is a final link, then always put .gnu.warning.SYMBOL sections into the .text section to get them out of the way. */ if (link_info.executable - && ! link_info.relocateable + && ! link_info.relocatable && strncmp (secname, ".gnu.warning.", sizeof ".gnu.warning." - 1) == 0 && hold_text.os != NULL) { @@ -1197,7 +1197,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) #define HAVE_SECTION(hold, name) \ (hold.os != NULL || (hold.os = lang_output_section_find (name)) != NULL) - if ((s->flags & SEC_EXCLUDE) != 0 && !link_info.relocateable) + if ((s->flags & SEC_EXCLUDE) != 0 && !link_info.relocatable) { if (s->output_section == NULL) s->output_section = bfd_abs_section_ptr; @@ -1278,7 +1278,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) } address = NULL; - if (link_info.relocateable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0) + if (link_info.relocatable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0) address = exp_intop ((bfd_vma) 0); load_base = NULL; @@ -1462,11 +1462,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -1505,9 +1505,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/generic.em b/ld/emultempl/generic.em index 3a7d611..611a948 100644 --- a/ld/emultempl/generic.em +++ b/ld/emultempl/generic.em @@ -4,7 +4,7 @@ cat >e${EMULATION_NAME}.c <<EOF /* This file is is generated by a shell script. DO NOT EDIT! */ /* emulate the original gld for the given ${EMULATION_NAME} - Copyright 1991, 1992, 1994, 1996, 2000, 2001, 2002 + Copyright 1991, 1992, 1994, 1996, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Steve Chamberlain steve@cygnus.com @@ -83,11 +83,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -104,9 +104,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/gld960.em b/ld/emultempl/gld960.em index dd73e6b..e9ef7e5 100644 --- a/ld/emultempl/gld960.em +++ b/ld/emultempl/gld960.em @@ -128,11 +128,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -149,9 +149,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/gld960c.em b/ld/emultempl/gld960c.em index 132afcb..160eb2a 100644 --- a/ld/emultempl/gld960c.em +++ b/ld/emultempl/gld960c.em @@ -143,11 +143,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -164,9 +164,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/hppaelf.em b/ld/emultempl/hppaelf.em index 4e3b6b9..456e17c 100644 --- a/ld/emultempl/hppaelf.em +++ b/ld/emultempl/hppaelf.em @@ -58,7 +58,7 @@ static bfd_signed_vma group_size = 1; static void hppaelf_after_parse () { - if (link_info.relocateable) + if (link_info.relocatable) lang_add_unique (".text"); #if 0 /* Enable this once we split millicode stuff from libgcc. */ else @@ -272,7 +272,7 @@ gld${EMULATION_NAME}_finish () /* If generating a relocatable output file, then we don't have to examine the relocs. */ - if (! link_info.relocateable) + if (! link_info.relocatable) { int ret = elf32_hppa_setup_section_lists (output_bfd, &link_info); @@ -304,7 +304,7 @@ gld${EMULATION_NAME}_finish () if (need_laying_out) hppaelf_layout_sections_again (); - if (! link_info.relocateable) + if (! link_info.relocatable) { /* Set the global data pointer. */ if (! elf32_hppa_set_gp (output_bfd, &link_info)) diff --git a/ld/emultempl/linux.em b/ld/emultempl/linux.em index fae1252..ce7f3b6f 100644 --- a/ld/emultempl/linux.em +++ b/ld/emultempl/linux.em @@ -135,7 +135,7 @@ gld${EMULATION_NAME}_create_output_section_statements () static void gld${EMULATION_NAME}_before_allocation () { - if (link_info.relocateable) + if (link_info.relocatable) return; /* Let the backend work out the sizes of any sections required by @@ -160,11 +160,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -181,9 +181,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/lnk960.em b/ld/emultempl/lnk960.em index ba0fe93..56facaa 100644 --- a/ld/emultempl/lnk960.em +++ b/ld/emultempl/lnk960.em @@ -184,7 +184,7 @@ lnk960_before_allocation () static void lnk960_after_allocation () { - if (!link_info.relocateable) + if (!link_info.relocatable) { lang_abs_symbol_at_end_of (".text", "_etext"); lang_abs_symbol_at_end_of (".data", "_edata"); @@ -283,11 +283,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -304,9 +304,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/m68hc1xelf.em b/ld/emultempl/m68hc1xelf.em index 5e5dc10..ed059a2 100644 --- a/ld/emultempl/m68hc1xelf.em +++ b/ld/emultempl/m68hc1xelf.em @@ -73,7 +73,7 @@ m68hc11_elf_${EMULATION_NAME}_before_allocation () /* If generating a relocatable output file, then we don't have to generate the trampolines. */ - if (link_info.relocateable) + if (link_info.relocatable) return; ret = elf32_m68hc11_setup_section_lists (output_bfd, &link_info); diff --git a/ld/emultempl/m68kcoff.em b/ld/emultempl/m68kcoff.em index 765447a..e56c71f 100644 --- a/ld/emultempl/m68kcoff.em +++ b/ld/emultempl/m68kcoff.em @@ -63,7 +63,7 @@ gld${EMULATION_NAME}_after_open () bfd *abfd; if (! command_line.embedded_relocs - || link_info.relocateable) + || link_info.relocatable) return; for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) @@ -133,7 +133,7 @@ gld${EMULATION_NAME}_after_allocation () bfd *abfd; if (! command_line.embedded_relocs - || link_info.relocateable) + || link_info.relocatable) return; for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) @@ -179,11 +179,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -200,9 +200,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em index cb3b86b..0bc20ef 100644 --- a/ld/emultempl/m68kelf.em +++ b/ld/emultempl/m68kelf.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2000, 2001 Free Software Foundation, Inc. +# Copyright 2000, 2001, 2003 Free Software Foundation, Inc. # Written by Michael Sokolov <msokolov@ivan.Harhan.ORG>, based on armelf.em # # This file is part of GLD, the Gnu Linker. @@ -47,7 +47,7 @@ m68k_elf_after_open () #ifdef SUPPORT_EMBEDDED_RELOCS if (command_line.embedded_relocs - && (! link_info.relocateable)) + && (! link_info.relocatable)) { bfd *abfd; @@ -131,7 +131,7 @@ m68k_elf_after_allocation () #ifdef SUPPORT_EMBEDDED_RELOCS if (command_line.embedded_relocs - && (! link_info.relocateable)) + && (! link_info.relocatable)) { bfd *abfd; diff --git a/ld/emultempl/mipsecoff.em b/ld/emultempl/mipsecoff.em index 6e417ed..89ca5c6 100644 --- a/ld/emultempl/mipsecoff.em +++ b/ld/emultempl/mipsecoff.em @@ -79,7 +79,7 @@ gld${EMULATION_NAME}_after_open () bfd *abfd; if (! command_line.embedded_relocs - || link_info.relocateable) + || link_info.relocatable) return; for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) @@ -149,7 +149,7 @@ gld${EMULATION_NAME}_after_allocation () bfd *abfd; if (! command_line.embedded_relocs - || link_info.relocateable) + || link_info.relocatable) return; for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) @@ -195,11 +195,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -216,9 +216,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/mipself.em b/ld/emultempl/mipself.em index 62a53e0..944fbe1 100644 --- a/ld/emultempl/mipself.em +++ b/ld/emultempl/mipself.em @@ -1,4 +1,4 @@ -# Copyright 2002 Free Software Foundation, Inc. +# Copyright 2002, 2003 Free Software Foundation, Inc. # Written by Mitch Lichtenberg <mpl@broadcom.com> and # Chris Demetriou <cgd@broadcom.com> based on m68kelf.em and mipsecoff.em. # @@ -49,7 +49,7 @@ mips_elf${ELFSIZE}_after_open() gld${EMULATION_NAME}_after_open (); #ifdef SUPPORT_EMBEDDED_RELOCS - if (command_line.embedded_relocs && (! link_info.relocateable)) + if (command_line.embedded_relocs && (! link_info.relocatable)) { bfd *abfd; @@ -140,7 +140,7 @@ mips_elf${ELFSIZE}_after_allocation () after_allocation_default (); #ifdef SUPPORT_EMBEDDED_RELOCS - if (command_line.embedded_relocs && (! link_info.relocateable)) + if (command_line.embedded_relocs && (! link_info.relocatable)) { bfd *abfd; diff --git a/ld/emultempl/mmix-elfnmmo.em b/ld/emultempl/mmix-elfnmmo.em index 8ec604f..3a2b870 100644 --- a/ld/emultempl/mmix-elfnmmo.em +++ b/ld/emultempl/mmix-elfnmmo.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2001, 2002 Free Software Foundation, Inc. +# Copyright 2001, 2002, 2003 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -42,7 +42,7 @@ mmix_before_allocation () maintenance burden of checking that it still does what we need.) */ /* Force -relax on if not doing a relocatable link. */ - if (! link_info.relocateable) + if (! link_info.relocatable) command_line.relax = TRUE; if (!_bfd_mmix_prepare_linker_allocated_gregs (output_bfd, &link_info)) diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em index e65e89b..84d1197 100644 --- a/ld/emultempl/mmo.em +++ b/ld/emultempl/mmo.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2001, 2002 Free Software Foundation, Inc. +# Copyright 2001, 2002, 2003 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -97,7 +97,7 @@ mmo_place_orphan (file, s) asection *snew, **pps, *bfd_section; /* We have nothing to say for anything other than a final link. */ - if (link_info.relocateable + if (link_info.relocatable || (bfd_get_section_flags (s->owner, s) & (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD) return FALSE; diff --git a/ld/emultempl/needrelax.em b/ld/emultempl/needrelax.em index 242b778..5e052c0 100644 --- a/ld/emultempl/needrelax.em +++ b/ld/emultempl/needrelax.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2001, 2002 Free Software Foundation, Inc. +# Copyright 2001, 2002, 2003 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -34,7 +34,7 @@ need_relax_${EMULATION_NAME}_before_allocation () gld${EMULATION_NAME}_before_allocation (); /* Force -relax on if not doing a relocatable link. */ - if (! link_info.relocateable) + if (! link_info.relocatable) command_line.relax = TRUE; } EOF diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index ce1a693..9197bd0 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -706,7 +706,7 @@ gld_${EMULATION_NAME}_set_symbols () if (!init[IMAGEBASEOFF].inited) { - if (link_info.relocateable) + if (link_info.relocatable) init[IMAGEBASEOFF].value = 0; else if (init[DLLOFF].value || link_info.shared) #ifdef DLL_SUPPORT @@ -719,8 +719,8 @@ gld_${EMULATION_NAME}_set_symbols () init[IMAGEBASEOFF].value = NT_EXE_IMAGE_BASE; } - /* Don't do any symbol assignments if this is a relocateable link. */ - if (link_info.relocateable) + /* Don't do any symbol assignments if this is a relocatable link. */ + if (link_info.relocatable) return; /* Glue the assignments into the abs section. */ @@ -776,7 +776,7 @@ gld_${EMULATION_NAME}_after_parse () opened, so registering the symbol as undefined will make a difference. */ - if (! link_info.relocateable && entry_symbol.name != NULL) + if (! link_info.relocatable && entry_symbol.name != NULL) ldlang_add_undef (entry_symbol.name); } @@ -1021,7 +1021,7 @@ gld_${EMULATION_NAME}_after_open () #if ! (defined (TARGET_IS_i386pe) || defined (TARGET_IS_armpe)) if (link_info.shared) #else - if (!link_info.relocateable) + if (!link_info.relocatable) #endif pe_dll_build_sections (output_bfd, &link_info); @@ -1461,7 +1461,7 @@ gld_${EMULATION_NAME}_finish () #ifdef DLL_SUPPORT if (link_info.shared #if !defined(TARGET_IS_shpe) && !defined(TARGET_IS_mipspe) - || (!link_info.relocateable && pe_def_file->num_exports != 0) + || (!link_info.relocatable && pe_def_file->num_exports != 0) #endif ) { @@ -1556,7 +1556,7 @@ gld_${EMULATION_NAME}_place_orphan (file, s) /* Look through the script to see where to place this section. */ hold_section_name = xstrdup (secname); - if (!link_info.relocateable) + if (!link_info.relocatable) { dollar = strchr (hold_section_name, '$'); if (dollar != NULL) @@ -1662,7 +1662,7 @@ gld_${EMULATION_NAME}_place_orphan (file, s) } } - if (link_info.relocateable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0) + if (link_info.relocatable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0) address = exp_intop ((bfd_vma) 0); else { @@ -1934,11 +1934,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em index d24ecf4..dfe7932 100644 --- a/ld/emultempl/ppc64elf.em +++ b/ld/emultempl/ppc64elf.em @@ -270,7 +270,7 @@ ppc_layout_sections_again (void) static void gld${EMULATION_NAME}_after_allocation (void) { - if (!link_info.relocateable) + if (!link_info.relocatable) _bfd_set_gp_value (output_bfd, ppc64_elf_toc (output_bfd)); } @@ -319,7 +319,7 @@ gld${EMULATION_NAME}_finish (void) /* If generating a relocatable output file, then we don't have any stubs. */ - if (stub_file != NULL && !link_info.relocateable) + if (stub_file != NULL && !link_info.relocatable) { int ret = ppc64_elf_setup_section_lists (output_bfd, &link_info); if (ret != 0) diff --git a/ld/emultempl/sh64elf.em b/ld/emultempl/sh64elf.em index 066cab8..174850f 100644 --- a/ld/emultempl/sh64elf.em +++ b/ld/emultempl/sh64elf.em @@ -483,9 +483,9 @@ sh64_elf_${EMULATION_NAME}_after_allocation () continue; } - /* If we emit relocateable contents, we need a + /* If we emit relocatable contents, we need a relocation for the start address. */ - if (link_info.relocateable || link_info.emitrelocations) + if (link_info.relocatable || link_info.emitrelocations) { /* FIXME: We could perhaps use lang_add_reloc and friends here, but I'm not really sure that @@ -555,7 +555,7 @@ sh64_elf_${EMULATION_NAME}_after_allocation () } /* The .cranges section will have this size, no larger or smaller. - Since relocs (if relocateable linking) will be emitted into the + Since relocs (if relocatable linking) will be emitted into the "extended" size, we must set the raw size to the total. We have to keep track of the number of new .cranges entries. diff --git a/ld/emultempl/sunos.em b/ld/emultempl/sunos.em index 8cabe3a..2f75b77 100644 --- a/ld/emultempl/sunos.em +++ b/ld/emultempl/sunos.em @@ -383,7 +383,7 @@ gld${EMULATION_NAME}_after_open () struct bfd_link_needed_list *needed, *l; /* We only need to worry about this when doing a final link. */ - if (link_info.relocateable || link_info.shared) + if (link_info.relocatable || link_info.shared) return; /* Get the list of files which appear in ld_need entries in dynamic @@ -689,7 +689,7 @@ gld${EMULATION_NAME}_before_allocation () /* The SunOS native linker creates a shared library whenever there are any undefined symbols in a link, unless -e is used. This is pretty weird, but we are compatible. */ - if (! link_info.shared && ! link_info.relocateable && ! entry_from_cmdline) + if (! link_info.shared && ! link_info.relocatable && ! entry_from_cmdline) { struct bfd_link_hash_entry *h; @@ -730,7 +730,7 @@ gld${EMULATION_NAME}_before_allocation () one. We need to create the symbol before calling size_dynamic_sections, although we can't set the value until afterward. */ - if (! link_info.relocateable) + if (! link_info.relocatable) { hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", TRUE, FALSE, FALSE); @@ -823,7 +823,7 @@ gld${EMULATION_NAME}_before_allocation () /* We must assign a value to __DYNAMIC. It should be zero if we are not doing a dynamic link, or the start of the .dynamic section if we are doing one. */ - if (! link_info.relocateable) + if (! link_info.relocatable) { hdyn->type = bfd_link_hash_defined; hdyn->u.def.value = 0; @@ -989,11 +989,11 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return EOF sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -1010,9 +1010,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/ticoff.em b/ld/emultempl/ticoff.em index 90c940e..aca5409 100644 --- a/ld/emultempl/ticoff.em +++ b/ld/emultempl/ticoff.em @@ -130,9 +130,9 @@ $s/$/n"/ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 0; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return `sed "$sc" ldscripts/${EMULATION_NAME}.xu`; - else if (link_info.relocateable) + else if (link_info.relocatable) return `sed "$sc" ldscripts/${EMULATION_NAME}.xr`; else if (!config.text_read_only) return `sed "$sc" ldscripts/${EMULATION_NAME}.xbn`; @@ -150,9 +150,9 @@ cat >>e${EMULATION_NAME}.c <<EOF { *isfile = 1; - if (link_info.relocateable && config.build_constructors) + if (link_info.relocatable && config.build_constructors) return "ldscripts/${EMULATION_NAME}.xu"; - else if (link_info.relocateable) + else if (link_info.relocatable) return "ldscripts/${EMULATION_NAME}.xr"; else if (!config.text_read_only) return "ldscripts/${EMULATION_NAME}.xbn"; diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em index b070075..bc91365 100644 --- a/ld/emultempl/xtensaelf.em +++ b/ld/emultempl/xtensaelf.em @@ -75,7 +75,7 @@ elf_xtensa_place_orphan (file, s) asection *s; { /* Early exit for relocatable links. */ - if (link_info.relocateable) + if (link_info.relocatable) return FALSE; return gld${EMULATION_NAME}_place_orphan (file, s); @@ -148,7 +148,7 @@ elf_xtensa_before_allocation () /* TBD: We need to force the page alignments to here and only do them as needed for the entire output section. Finally, if this - is a relocateable link then we need to add alignment notes so + is a relocatable link then we need to add alignment notes so that the literals can be separated later. */ } diff --git a/ld/ld.texinfo b/ld/ld.texinfo index d6e6220..c9691a0 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -728,9 +728,9 @@ This option is currently only supported on ELF platforms. @cindex partial link @cindex relocatable output @kindex -r -@kindex --relocateable +@kindex --relocatable @item -r -@itemx --relocateable +@itemx --relocatable Generate relocatable output---i.e., generate an output file that can in turn serve as input to @command{ld}. This is often called @dfn{partial linking}. As a side effect, in environments that support standard Unix diff --git a/ld/ldctor.c b/ld/ldctor.c index a5089cf..2081900 100644 --- a/ld/ldctor.c +++ b/ld/ldctor.c @@ -1,6 +1,6 @@ /* ldctor.c -- constructor support routines Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002 Free Software Foundation, Inc. + 2002, 2003 Free Software Foundation, Inc. By Steve Chamberlain <sac@cygnus.com> This file is part of GLD, the Gnu Linker. @@ -278,12 +278,12 @@ ldctor_build_sets () .long elementN .long 0 except that we use the right size instead of .long. When - generating relocateable output, we generate relocs instead of + generating relocatable output, we generate relocs instead of addresses. */ howto = bfd_reloc_type_lookup (output_bfd, p->reloc); if (howto == (reloc_howto_type *) NULL) { - if (link_info.relocateable) + if (link_info.relocatable) { einfo (_("%P%X: %s does not support reloc %s for set %s\n"), bfd_get_target (output_bfd), @@ -292,7 +292,7 @@ ldctor_build_sets () continue; } - /* If this is not a relocateable link, all we need is the + /* If this is not a relocatable link, all we need is the size, which we can get from the input BFD. */ if (p->elements->section->owner != NULL) howto = bfd_reloc_type_lookup (p->elements->section->owner, @@ -369,7 +369,7 @@ ldctor_build_sets () if (! bfd_is_abs_section (e->section)) e->section->flags |= SEC_KEEP; - if (link_info.relocateable) + if (link_info.relocatable) lang_add_reloc (p->reloc, howto, e->section, e->name, exp_intop (e->value)); else @@ -1,6 +1,6 @@ /* This module handles expression trees. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002 + 2001, 2002, 2003 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>. @@ -134,7 +134,7 @@ exp_print_token (code, infix_p) { ADDR, "ADDR" }, { LOADADDR, "LOADADDR" }, { MAX_K, "MAX_K" }, - { REL, "relocateable" }, + { REL, "relocatable" }, { DATA_SEGMENT_ALIGN, "DATA_SEGMENT_ALIGN" }, { DATA_SEGMENT_END, "DATA_SEGMENT_END" } }; @@ -215,7 +215,7 @@ exp_bigintop (value, str) return new; } -/* Build an expression representing an unnamed relocateable value. */ +/* Build an expression representing an unnamed relocatable value. */ etree_type * exp_relop (section, value) @@ -528,7 +528,7 @@ fold_name (tree, current_section, allocation_done, dot) { result = new_abs ((bfd_vma) bfd_sizeof_headers (output_bfd, - link_info.relocateable)); + link_info.relocatable)); } else { diff --git a/ld/ldfile.c b/ld/ldfile.c index 4806534..79d3b48 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -338,7 +338,7 @@ ldfile_open_file_search (arch, entry, lib, suffix) { char *string; - if (entry->dynamic && ! link_info.relocateable) + if (entry->dynamic && ! link_info.relocatable) { if (ldemul_open_dynamic_archive (arch, search, entry)) { diff --git a/ld/ldint.texinfo b/ld/ldint.texinfo index 489750a..5486764 100644 --- a/ld/ldint.texinfo +++ b/ld/ldint.texinfo @@ -1,6 +1,6 @@ \input texinfo @setfilename ldint.info -@c Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +@c Copyright 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003 @c Free Software Foundation, Inc. @ifinfo @@ -334,7 +334,7 @@ be run when doing a final relocation, they should be enclosed within a variable substitution based on @code{RELOCATING}. For example, on many targets special symbols such as @code{_end} should be defined when doing a final link. Naturally, those symbols should not be defined when doing -a relocateable link using @code{-r}. The @file{scripttempl} script +a relocatable link using @code{-r}. The @file{scripttempl} script could use a construct like this to define those symbols: @smallexample $@{RELOCATING+ _end = .;@} diff --git a/ld/ldlang.c b/ld/ldlang.c index 83d43b8..267a32c 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1193,7 +1193,7 @@ lang_add_section (ptr, section, output, file) link. Discard debugging sections marked with SEC_EXCLUDE on a relocatable link too. */ if ((flags & SEC_EXCLUDE) != 0 - && ((flags & SEC_DEBUGGING) != 0 || !link_info.relocateable)) + && ((flags & SEC_DEBUGGING) != 0 || !link_info.relocatable)) discard = TRUE; /* Discard input sections which are assigned to a section named @@ -1252,7 +1252,7 @@ lang_add_section (ptr, section, output, file) format targets, .text$foo sections go into .text and it's odd to see .text with SEC_LINK_ONCE set. */ - if (! link_info.relocateable) + if (! link_info.relocatable) flags &= ~ (SEC_LINK_ONCE | SEC_LINK_DUPLICATES); /* If this is not the first input section, and the SEC_READONLY @@ -1274,7 +1274,7 @@ lang_add_section (ptr, section, output, file) } /* For now make .tbss normal section. */ - if ((flags & SEC_THREAD_LOCAL) && ! link_info.relocateable) + if ((flags & SEC_THREAD_LOCAL) && ! link_info.relocatable) flags |= SEC_LOAD; section->output_section->flags |= flags; @@ -1965,7 +1965,7 @@ ldlang_open_output (statement) ASSERT (output_bfd == (bfd *) NULL); output_bfd = open_output (statement->output_statement.name); ldemul_set_output_arch (); - if (config.magic_demand_paged && !link_info.relocateable) + if (config.magic_demand_paged && !link_info.relocatable) output_bfd->flags |= D_PAGED; else output_bfd->flags &= ~D_PAGED; @@ -3058,7 +3058,7 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax, & (SEC_ALLOC | SEC_LOAD)) != 0 && (bfd_get_section_flags (output_bfd, os->bfd_section) & SEC_NEVER_LOAD) == 0 - && ! link_info.relocateable + && ! link_info.relocatable && check_regions && strcmp (os->region->name, "*default*") == 0 && lang_memory_region_list != NULL @@ -3139,7 +3139,7 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax, ASSERT (after == os->bfd_section->vma); else if ((os->bfd_section->flags & SEC_HAS_CONTENTS) == 0 && (os->bfd_section->flags & SEC_THREAD_LOCAL) - && ! link_info.relocateable) + && ! link_info.relocatable) os->bfd_section->_raw_size = 0; else os->bfd_section->_raw_size = @@ -3585,7 +3585,7 @@ lang_set_startof () { asection *s; - if (link_info.relocateable) + if (link_info.relocatable) return; for (s = output_bfd->sections; s != NULL; s = s->next) @@ -3632,7 +3632,7 @@ lang_finish () struct bfd_link_hash_entry *h; bfd_boolean warn; - if (link_info.relocateable || link_info.shared) + if (link_info.relocatable || link_info.shared) warn = FALSE; else warn = TRUE; @@ -3741,7 +3741,7 @@ lang_check () input format may not have equivalent representations in the output format (and besides BFD does not translate relocs for other link purposes than a final link). */ - if ((link_info.relocateable || link_info.emitrelocations) + if ((link_info.relocatable || link_info.emitrelocations) && (compatible == NULL || bfd_get_flavour (input_bfd) != bfd_get_flavour (output_bfd)) && (bfd_get_file_flags (input_bfd) & HAS_RELOC) != 0) @@ -3794,7 +3794,7 @@ lang_common () { if (command_line.inhibit_common_definition) return; - if (link_info.relocateable + if (link_info.relocatable && ! command_line.force_common_definition) return; @@ -3935,7 +3935,7 @@ lang_place_orphans () /* This is a lonely common section which must have come from an archive. We attach to the section with the wildcard. */ - if (! link_info.relocateable + if (! link_info.relocatable || command_line.force_common_definition) { if (default_common_section == NULL) @@ -4353,7 +4353,7 @@ lang_process () /* Find any sections not attached explicitly and handle them. */ lang_place_orphans (); - if (! link_info.relocateable) + if (! link_info.relocatable) { /* Look for a text section and set the readonly attribute in it. */ asection *found = bfd_get_section_by_name (output_bfd, ".text"); @@ -4371,7 +4371,7 @@ lang_process () and other back-ends size dynamic sections. */ ldemul_before_allocation (); - if (!link_info.relocateable) + if (!link_info.relocatable) strip_excluded_output_sections (); /* We must record the program headers before we try to fix the @@ -4449,7 +4449,7 @@ lang_process () (fill_type *) 0, (bfd_vma) 0); /* Make sure that the section addresses make sense. */ - if (! link_info.relocateable + if (! link_info.relocatable && command_line.check_section_addresses) lang_check_section_addresses (); diff --git a/ld/ldmain.c b/ld/ldmain.c index 08a0ec4..424a400 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -287,7 +287,7 @@ main (argc, argv) interface by default. */ demangling = getenv ("COLLECT_NO_DEMANGLE") == NULL; - link_info.relocateable = FALSE; + link_info.relocatable = FALSE; link_info.emitrelocations = FALSE; link_info.task_link = FALSE; link_info.shared = FALSE; @@ -350,7 +350,7 @@ main (argc, argv) ldemul_set_symbols (); - if (link_info.relocateable) + if (link_info.relocatable) { if (command_line.gc_sections) einfo ("%P%F: --gc-sections and -r may not be used together\n"); @@ -376,7 +376,7 @@ main (argc, argv) /* Treat ld -r -s as ld -r -S -x (i.e., strip all local symbols). I don't see how else this can be handled, since in this case we must preserve all externally visible symbols. */ - if (link_info.relocateable && link_info.strip == strip_all) + if (link_info.relocatable && link_info.strip == strip_all) { link_info.strip = strip_debugger; if (link_info.discard == discard_sec_merge) @@ -475,7 +475,7 @@ main (argc, argv) /* Print error messages for any missing symbols, for any warning symbols, and possibly multiple definitions. */ - if (link_info.relocateable) + if (link_info.relocatable) output_bfd->flags &= ~EXEC_P; else output_bfd->flags |= EXEC_P; @@ -489,9 +489,9 @@ main (argc, argv) if (nocrossref_list != NULL) check_nocrossrefs (); - /* Even if we're producing relocateable output, some non-fatal errors should + /* Even if we're producing relocatable output, some non-fatal errors should be reported in the exit status. (What non-fatal errors, if any, do we - want to ignore for relocateable output?) */ + want to ignore for relocatable output?) */ if (!config.make_executable && !force_make_executable) { if (trace_files) @@ -509,7 +509,7 @@ main (argc, argv) /* If the --force-exe-suffix is enabled, and we're making an executable file and it doesn't end in .exe, copy it to one which does. */ - if (! link_info.relocateable && command_line.force_exe_suffix) + if (! link_info.relocatable && command_line.force_exe_suffix) { int len = strlen (output_filename); @@ -1129,7 +1129,7 @@ constructor_callback (info, constructor, name, abfd, section, value) /* Ensure that BFD_RELOC_CTOR exists now, so that we can give a useful error message. */ if (bfd_reloc_type_lookup (output_bfd, BFD_RELOC_CTOR) == NULL - && (link_info.relocateable + && (link_info.relocatable || bfd_reloc_type_lookup (abfd, BFD_RELOC_CTOR) == NULL)) einfo (_("%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n")); diff --git a/ld/ldwrite.c b/ld/ldwrite.c index cbd879d..a93f151 100644 --- a/ld/ldwrite.c +++ b/ld/ldwrite.c @@ -1,5 +1,5 @@ /* ldwrite.c -- write out the linked file - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002, 2003 Free Software Foundation, Inc. Written by Steve Chamberlain sac@cygnus.com @@ -441,7 +441,7 @@ split_sections (abfd, info) || info->strip == strip_some) thislines = sec->lineno_count; - if (info->relocateable) + if (info->relocatable) thisrelocs = sec->reloc_count; if (sec->_cooked_size != 0) @@ -450,7 +450,7 @@ split_sections (abfd, info) thissize = sec->_raw_size; } - else if (info->relocateable + else if (info->relocatable && (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order)) thisrelocs++; diff --git a/ld/lexsup.c b/ld/lexsup.c index 8c85807..5f30f89 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -234,8 +234,8 @@ static const struct ld_option ld_options[] = '\0', NULL, N_("Ignored for SVR4 compatibility"), ONE_DASH }, { {"emit-relocs", no_argument, NULL, 'q'}, 'q', NULL, "Generate relocations in final output", TWO_DASHES }, - { {"relocateable", no_argument, NULL, 'r'}, - 'r', NULL, N_("Generate relocateable output"), TWO_DASHES }, + { {"relocatable", no_argument, NULL, 'r'}, + 'r', NULL, N_("Generate relocatable output"), TWO_DASHES }, { {NULL, no_argument, NULL, '\0'}, 'i', NULL, NULL, ONE_DASH }, { {"just-symbols", required_argument, NULL, 'R'}, @@ -860,7 +860,7 @@ parse_args (argc, argv) and will seg-fault the next time around. */ einfo(_("%P%F: bad -rpath option\n")); - link_info.relocateable = TRUE; + link_info.relocatable = TRUE; config.build_constructors = FALSE; config.magic_demand_paged = FALSE; config.text_read_only = FALSE; @@ -1042,7 +1042,7 @@ parse_args (argc, argv) link_info.task_link = TRUE; /* Fall through - do an implied -r option. */ case OPTION_UR: - link_info.relocateable = TRUE; + link_info.relocatable = TRUE; config.build_constructors = TRUE; config.magic_demand_paged = FALSE; config.text_read_only = FALSE; |