diff options
author | Paul Brook <paul@codesourcery.com> | 2009-11-23 14:41:33 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2009-11-23 14:41:33 +0000 |
commit | 1338dd10efb7f5b6ab29142fa07004ff900a20b4 (patch) | |
tree | 2a33ea567499e5224c3204234a776f05784b93a7 /ld/ldexp.c | |
parent | 62836bf48e1a5312afa895ec7730a332e0928e0a (diff) | |
download | gdb-1338dd10efb7f5b6ab29142fa07004ff900a20b4.zip gdb-1338dd10efb7f5b6ab29142fa07004ff900a20b4.tar.gz gdb-1338dd10efb7f5b6ab29142fa07004ff900a20b4.tar.bz2 |
2009-11-23 Paul Brook <paul@codesourcery.com>
ld/
* ldexp.c: Copy symbol type for simple assignments.
bfd/
* libbfd-in.h (_bfd_generic_copy_link_hash_symbol_type): Add
prototype.
* elf-bfd.h (_bfd_elf_copy_link_hash_symbol_type): Add prototype.
* linker.c (_bfd_generic_copy_link_hash_symbol_type): New function.
* elflink.c (_bfd_elf_copy_link_hash_symbol_type): New function.
* targets.c (BFD_JUMP_TABLE_LINK, struct bfd_target): Add
_copy_link_hash_symbol_type.
* bfd/coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Add
_bfd_generic_copy_link_hash_symbol_type.
* bfd/coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Add
_bfd_generic_copy_link_hash_symbol_type.
* aout-adobe.c (aout_32_bfd_copy_link_hash_symbol_type): Define.
* aout-target.h (MY_bfd_copy_link_hash_symbol_type): Define.
* aout-tic30.c (MY_bfd_copy_link_hash_symbol_type): Define.
* binary.c (binary_bfd_copy_link_hash_symbol_type): Define.
* bout.c (b_out_bfd_copy_link_hash_symbol_type): Define.
* coffcode.h (coff_bfd_copy_link_hash_symbol_type): Define.
* elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type): Define.
* i386msdos.c (msdos_bfd_copy_link_hash_symbol_type): Define.
* i386os9k.c (os9k_bfd_copy_link_hash_symbol_type): Define.
* ieee.c (ieee_bfd_copy_link_hash_symbol_type): Define.
* ihex.c (ihex_bfd_copy_link_hash_symbol_type): Define.
* libecoff.h (_bfd_ecoff_bfd_copy_link_hash_symbol_type): Define.
* mach-o.c (bfd_mach_o_bfd_copy_link_hash_symbol_type): Define.
* mmo.c (mmo_bfd_copy_link_hash_symbol_type): Define.
* nlm-target.h (nlm_bfd_copy_link_hash_symbol_type): Define.
* oasys.c (oasys_bfd_copy_link_hash_symbol_type): Define.
* pef.c (bfd_pef_bfd_copy_link_hash_symbol_type): Define.
* ppcboot.c (ppcboot_bfd_copy_link_hash_symbol_type): Define.
* som.c (som_bfd_copy_link_hash_symbol_type): Define.
* srec.c (srec_bfd_copy_link_hash_symbol_type): Define.
* tekhex.c (tekhex_bfd_copy_link_hash_symbol_type): Define.
* versados.c (versados_bfd_copy_link_hash_symbol_type): Define.
* vms.c (vms_bfd_copy_link_hash_symbol_type): Define.
* xsym.c (bfd_sym_bfd_copy_link_hash_symbol_type): Define.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
ld/testsuite
* ld-arm/script-type.sym: New test.
* ld-arm/script-type.s: New test.
* ld-arm/script-type.s: New test.
Diffstat (limited to 'ld/ldexp.c')
-rw-r--r-- | ld/ldexp.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -815,6 +815,20 @@ exp_fold_tree_1 (etree_type *tree) h->u.def.section = expld.result.section; if (tree->type.node_class == etree_provide) tree->type.node_class = etree_provided; + + /* Copy the symbol type if this is a simple assignment of + one symbol to annother. */ + if (tree->assign.src->type.node_class == etree_name) + { + struct bfd_link_hash_entry *hsrc; + + hsrc = bfd_link_hash_lookup (link_info.hash, + tree->assign.src->name.name, + FALSE, FALSE, TRUE); + if (hsrc) + bfd_copy_link_hash_symbol_type (link_info.output_bfd, h, + hsrc); + } } } break; |