diff options
author | Alan Modra <amodra@bigpond.net.au> | 2005-08-04 06:22:14 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2005-08-04 06:22:14 +0000 |
commit | a3f7db467370bffeccb9d387a6c2687e875a634a (patch) | |
tree | 6d177317dc50e39c755e4ad7f6b26f42a46cb37f /ld/emultempl | |
parent | 76f6e7488b30e9760aa2f55e73f2970f7034dfff (diff) | |
download | binutils-redhat-a3f7db467370bffeccb9d387a6c2687e875a634a.tar.gz |
bfd/
* elf32-ppc.c (struct elf_linker_section): Replace sym_val field
with sym.
(ppc_elf_relocate_section): Adjust for above.
(create_sdata_sym): New function.
(ppc_elf_create_linker_section): Call it.
(ppc_elf_check_relocs): Correct has_sda_refs and non_got_refs.
Create sdata syms for all SDA relocs.
(ppc_elf_adjust_dynamic_symbol): Don't special case _SDA_BASE_
and _SDA2_BASE_.
(ppc_elf_set_sdata_syms): Delete.
* elflink.c (bfd_elf_size_dynamic_sections): Don't create DT_INIT
and DT_FINI tags unless associated section has input.
(bfd_elf_set_symbol, _bfd_elf_provide_symbol): Delete.
(_bfd_elf_provide_section_bound_symbols): Delete.
* bfd-in.h (_bfd_elf_provide_symbol): Delete.
(_bfd_elf_provide_section_bound_symbols): Delete.
* bfd-in2.h: Regenerate.
ld/
* ldemul.c (ldemul_do_assignments, do_assignments_default): Delete.
* ldemul.h (ldemul_do_assignments, do_assignments_default): Delete.
(struct ld_emulation_xfer_struct): Remove do_assignments field.
* ldlang.c (lang_do_assignments): Don't call ldemul_do_assignments.
* emulparams/elf32ppc.sh (SDATA_START_SYMBOLS): New.
(SDATA2_START_SYMBOLS, SBSS_START_SYMBOLS, SBSS_END_SYMBOLS): New.
* emultempl/aix.em (ld_*_emulation): Delete do_assignments init.
* emultempl/armcoff.em: Likewise.
* emultempl/beos.em: Likewise.
* emultempl/generic.em: Likewise.
* emultempl/gld960.em: Likewise.
* emultempl/gld960c.em: Likewise.
* emultempl/linux.em: Likewise.
* emultempl/lnk960.em: Likewise.
* emultempl/m68kcoff.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/sunos.em: Likewise.
* emultempl/ticoff.em: Likewise.
* emultempl/vanilla.em: Likewise.
* emultempl/elf32.em: Likewise.
(gld*_provide_bound_symbols): Delete.
(gld*_provide_init_fini_syms): Delete.
(gld*_before_allocation): Don't call ldemul_do_assignments.
* emultempl/ppc32elf.em (ppc_do_assignments): Delete.
(LDEMUL_DO_ASSIGNMENTS): Delete.
* scripttempl/elf.sc: Provide init/fini syms. Add SBSS_START_SYMBOLS,
SBSS_END_SYMBOLS, SDATA2_START_SYMBOLS.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/aix.em | 1 | ||||
-rw-r--r-- | ld/emultempl/armcoff.em | 1 | ||||
-rw-r--r-- | ld/emultempl/beos.em | 1 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 45 | ||||
-rw-r--r-- | ld/emultempl/generic.em | 1 | ||||
-rw-r--r-- | ld/emultempl/gld960.em | 1 | ||||
-rw-r--r-- | ld/emultempl/gld960c.em | 1 | ||||
-rw-r--r-- | ld/emultempl/linux.em | 1 | ||||
-rw-r--r-- | ld/emultempl/lnk960.em | 1 | ||||
-rw-r--r-- | ld/emultempl/m68kcoff.em | 1 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 1 | ||||
-rw-r--r-- | ld/emultempl/ppc32elf.em | 18 | ||||
-rw-r--r-- | ld/emultempl/sunos.em | 1 | ||||
-rw-r--r-- | ld/emultempl/ticoff.em | 1 | ||||
-rw-r--r-- | ld/emultempl/vanilla.em | 1 |
15 files changed, 0 insertions, 76 deletions
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 8763155b7e..d525edd890 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -1339,7 +1339,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = { gld${EMULATION_NAME}_set_output_arch, gld${EMULATION_NAME}_choose_target, gld${EMULATION_NAME}_before_allocation, - do_assignments_default, gld${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em index acf117cb41..d5fd67d8ce 100644 --- a/ld/emultempl/armcoff.em +++ b/ld/emultempl/armcoff.em @@ -261,7 +261,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, gld${EMULATION_NAME}_before_allocation, - do_assignments_default, gld${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em index e07677b314..0b06bc7420 100644 --- a/ld/emultempl/beos.em +++ b/ld/emultempl/beos.em @@ -766,7 +766,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, gld_${EMULATION_NAME}_before_allocation, - do_assignments_default, gld_${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index e43c8c5a83..2764a59d96 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -57,7 +57,6 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. /* Declare functions used by various EXTRA_EM_FILEs. */ static void gld${EMULATION_NAME}_before_parse (void); static void gld${EMULATION_NAME}_after_open (void); -static void gld${EMULATION_NAME}_provide_init_fini_syms (void); static void gld${EMULATION_NAME}_before_allocation (void); static bfd_boolean gld${EMULATION_NAME}_place_orphan (lang_input_statement_type *file, asection *s); @@ -1040,47 +1039,6 @@ if test x"$LDEMUL_BEFORE_ALLOCATION" != xgld"$EMULATION_NAME"_before_allocation; fi cat >>e${EMULATION_NAME}.c <<EOF -static void -gld${EMULATION_NAME}_provide_bound_symbols (const char *sec, - const char *start, - const char *end) -{ - asection *s = bfd_get_section_by_name (output_bfd, sec); - _bfd_elf_provide_section_bound_symbols (&link_info, s, start, end); -} - -/* If not building a shared library, provide - - __preinit_array_start - __preinit_array_end - __init_array_start - __init_array_end - __fini_array_start - __fini_array_end - - They are set here rather than via PROVIDE in the linker - script, because using PROVIDE inside an output section - statement results in unnecessary output sections. Using - PROVIDE outside an output section statement runs the risk of - section alignment affecting where the section starts. */ - -static void -gld${EMULATION_NAME}_provide_init_fini_syms (void) -{ - if (!link_info.relocatable && link_info.executable) - { - gld${EMULATION_NAME}_provide_bound_symbols (".preinit_array", - "__preinit_array_start", - "__preinit_array_end"); - gld${EMULATION_NAME}_provide_bound_symbols (".init_array", - "__init_array_start", - "__init_array_end"); - gld${EMULATION_NAME}_provide_bound_symbols (".fini_array", - "__fini_array_start", - "__fini_array_end"); - } -} - /* This is called after the sections have been attached to output sections, but before any sizes or addresses have been set. */ @@ -1098,8 +1056,6 @@ gld${EMULATION_NAME}_before_allocation (void) referred to by dynamic objects. */ lang_for_each_statement (gld${EMULATION_NAME}_find_statement_assignment); - ldemul_do_assignments (); - /* Let the ELF backend work out the sizes of any sections required by dynamic linking. */ rpath = command_line.rpath; @@ -1881,7 +1837,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = ${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default}, ${LDEMUL_CHOOSE_TARGET-ldemul_default_target}, ${LDEMUL_BEFORE_ALLOCATION-gld${EMULATION_NAME}_before_allocation}, - ${LDEMUL_DO_ASSIGNMENTS-gld${EMULATION_NAME}_provide_init_fini_syms}, ${LDEMUL_GET_SCRIPT-gld${EMULATION_NAME}_get_script}, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/generic.em b/ld/emultempl/generic.em index f7153b682e..985cdf8e24 100644 --- a/ld/emultempl/generic.em +++ b/ld/emultempl/generic.em @@ -128,7 +128,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = ${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default}, ${LDEMUL_CHOOSE_TARGET-ldemul_default_target}, ${LDEMUL_BEFORE_ALLOCATION-before_allocation_default}, - ${LDEMUL_DO_ASSIGNMENTS-do_assignments_default}, ${LDEMUL_GET_SCRIPT-gld${EMULATION_NAME}_get_script}, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/gld960.em b/ld/emultempl/gld960.em index f4076223ae..63b5bb341a 100644 --- a/ld/emultempl/gld960.em +++ b/ld/emultempl/gld960.em @@ -134,7 +134,6 @@ struct ld_emulation_xfer_struct ld_gld960_emulation = gld960_set_output_arch, gld960_choose_target, before_allocation_default, - do_assignments_default, gld960_get_script, "960", "", diff --git a/ld/emultempl/gld960c.em b/ld/emultempl/gld960c.em index 5de01e6431..6973a06d40 100644 --- a/ld/emultempl/gld960c.em +++ b/ld/emultempl/gld960c.em @@ -149,7 +149,6 @@ struct ld_emulation_xfer_struct ld_gld960coff_emulation = gld960_set_output_arch, gld960_choose_target, before_allocation_default, - do_assignments_default, gld960_get_script, "960coff", "", diff --git a/ld/emultempl/linux.em b/ld/emultempl/linux.em index 071af80cec..996a7ea110 100644 --- a/ld/emultempl/linux.em +++ b/ld/emultempl/linux.em @@ -189,7 +189,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, gld${EMULATION_NAME}_before_allocation, - do_assignments_default, gld${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/lnk960.em b/ld/emultempl/lnk960.em index 14839835d4..95384d42d5 100644 --- a/ld/emultempl/lnk960.em +++ b/ld/emultempl/lnk960.em @@ -269,7 +269,6 @@ struct ld_emulation_xfer_struct ld_lnk960_emulation = lnk960_set_output_arch, lnk960_choose_target, before_allocation_default, - do_assignments_default, lnk960_get_script, "lnk960", "", diff --git a/ld/emultempl/m68kcoff.em b/ld/emultempl/m68kcoff.em index 31f98a0465..4bf3994b67 100644 --- a/ld/emultempl/m68kcoff.em +++ b/ld/emultempl/m68kcoff.em @@ -222,7 +222,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, before_allocation_default, - do_assignments_default, gld${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 6e14330494..df7692d680 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -1823,7 +1823,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, gld_${EMULATION_NAME}_before_allocation, - do_assignments_default, gld_${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/ppc32elf.em b/ld/emultempl/ppc32elf.em index ba59b80a97..e4d56de418 100644 --- a/ld/emultempl/ppc32elf.em +++ b/ld/emultempl/ppc32elf.em @@ -117,23 +117,6 @@ ppc_before_allocation (void) gld${EMULATION_NAME}_before_allocation (); } -static void -ppc_do_assignments (void) -{ - asection *s; - - if (is_ppc_elf32_vec (link_info.hash->creator)) - ppc_elf_set_sdata_syms (output_bfd, &link_info); - - s = bfd_get_section_by_name (output_bfd, ".sbss"); - _bfd_elf_provide_section_bound_symbols (&link_info, s, - "__sbss_start", "__sbss_end"); - _bfd_elf_provide_section_bound_symbols (&link_info, s, - "___sbss_start", "___sbss_end"); - - gld${EMULATION_NAME}_provide_init_fini_syms (); -} - EOF # Define some shell vars to insert bits of code into the standard elf @@ -177,4 +160,3 @@ PARSE_AND_LIST_ARGS_CASES=' # LDEMUL_AFTER_OPEN=ppc_after_open LDEMUL_BEFORE_ALLOCATION=ppc_before_allocation -LDEMUL_DO_ASSIGNMENTS=ppc_do_assignments diff --git a/ld/emultempl/sunos.em b/ld/emultempl/sunos.em index 19f18931c8..a480558c90 100644 --- a/ld/emultempl/sunos.em +++ b/ld/emultempl/sunos.em @@ -1013,7 +1013,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, gld${EMULATION_NAME}_before_allocation, - do_assignments_default, gld${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/ticoff.em b/ld/emultempl/ticoff.em index 5938ba421e..0382bbdd86 100644 --- a/ld/emultempl/ticoff.em +++ b/ld/emultempl/ticoff.em @@ -162,7 +162,6 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = set_output_arch_default, ldemul_default_target, before_allocation_default, - do_assignments_default, gld_${EMULATION_NAME}_get_script, "${EMULATION_NAME}", "${OUTPUT_FORMAT}", diff --git a/ld/emultempl/vanilla.em b/ld/emultempl/vanilla.em index ad11f41ddb..2124852687 100644 --- a/ld/emultempl/vanilla.em +++ b/ld/emultempl/vanilla.em @@ -65,7 +65,6 @@ struct ld_emulation_xfer_struct ld_vanilla_emulation = vanilla_set_output_arch, ldemul_default_target, before_allocation_default, - do_assignments_default, vanilla_get_script, "vanilla", "a.out-sunos-big", |