bfd/ 2013-04-05 H.J. Lu * elf-bfd.h (struct elf_backend_data ): Add abfd, newdyn and olddyn. Remove const from oldsec. (_bfd_elf_sharable_merge_symbol): Updated. * elf64-x86-64.c (elf_x86_64_merge_symbol): Likewise. * elflink.c (_bfd_elf_merge_symbol): Update bed->merge_symbol call. 2009-12-12 H.J. Lu * elf.c: Fix shadowed variable warnings. * elf64-x86-64.c: Likewise. * elflink.c: Likewise. 2007-01-23 H.J. Lu * elf-bfd.h (_bfd_elf_sharable_com_section): New. (_bfd_elf_add_sharable_symbol): Likewise. (_bfd_elf_sharable_section_from_bfd_section): Likewise. (_bfd_elf_sharable_symbol_processing): Likewise. (_bfd_elf_sharable_common_definition): Likewise. (_bfd_elf_sharable_common_section_index): Likewise. (_bfd_elf_sharable_common_section): Likewise. (_bfd_elf_sharable_merge_symbol): Likewise. * elf.c (special_sections_g): Add ".gnu.linkonce.shrb" and ".gnu.linkonce.shrd". (special_sections_s): Add ".sharable_bss" and ".sharable_data". (get_program_header_size): Handle PT_GNU_SHR segment. (_bfd_elf_map_sections_to_segments): Likewise. (assign_file_positions_for_load_sections): Likewise. * elf32-i386.c (elf_i386_link_hash_table): Add sdynsharablebss and srelsharablebss fields. (elf_i386_link_hash_table_create): Initialize sdynsharablebss and srelsharablebss. (elf_i386_create_dynamic_sections): Handle sdynsharablebss and srelsharablebss. (elf_i386_adjust_dynamic_symbol): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (elf_backend_add_symbol_hook): Defined. (elf_backend_section_from_bfd_section): Likewise. (elf_backend_symbol_processing): Likewise. (elf_backend_common_section_index): Likewise. (elf_backend_common_section): Likewise. (elf_backend_common_definition): Likewise. (elf_backend_merge_symbol): Likewise. * elf64-x86-64.c (elf64_x86_64_link_hash_table): Add sdynsharablebss and srelsharablebss fields. (elf64_x86_64_link_hash_table_create): Initialize sdynsharablebss and srelsharablebss. (elf64_x86_64_create_dynamic_sections): Handle sdynsharablebss and srelsharablebss. (elf64_x86_64_adjust_dynamic_symbol): Likewise. (elf64_x86_64_size_dynamic_sections): Likewise. (elf64_x86_64_finish_dynamic_symbol): Likewise. (elf64_x86_64_add_symbol_hook): Handle sharable symbols. (elf64_x86_64_elf_section_from_bfd_section): Likewise. (elf64_x86_64_symbol_processing): Likewise. (elf64_x86_64_merge_symbol): Likewise. (elf64_x86_64_common_definition): Handle sharable sections. (elf64_x86_64_common_section_index): Likewise. (elf64_x86_64_common_section): Likewise. * elflink.c (_bfd_elf_create_dynamic_sections): Handle .dynsharablebss section. (_bfd_elf_sharable_com_section): New. (get_sharable_common_section): Likewise. (_bfd_elf_add_sharable_symbol): Likewise. (_bfd_elf_sharable_section_from_bfd_section): Likewise. (_bfd_elf_sharable_symbol_processing): Likewise. (_bfd_elf_sharable_common_definition): Likewise. (_bfd_elf_sharable_common_section_index): Likewise. (_bfd_elf_sharable_common_section): Likewise. (_bfd_elf_sharable_merge_symbol): Likewise. * elfnn-ia64.c (elfNN_ia64_add_symbol_hook): Handle sharable symbols. (elf_backend_add_symbol_hook): Defined. (elf_backend_section_from_bfd_section): Likewise. (elf_backend_symbol_processing): Likewise. (elf_backend_common_section_index): Likewise. (elf_backend_common_section): Likewise. (elf_backend_common_definition): Likewise. (elf_backend_merge_symbol): Likewise. binutils/ 2007-01-04 H.J. Lu * readelf.c (dump_relocations): Handle sharable sections. (get_segment_type): Handle sharable segment. (get_symbol_index_type): Handle sharable sections. gas/ 2007-01-04 H.J. Lu * config/obj-elf.c (obj_elf_sharable_common): New. (elf_pseudo_table): Add "sharable_common". (obj_elf_change_section): Handle sharable sections. include/ 2007-01-23 H.J. Lu * bfdlink.h (bfd_link_info): Add sharable_sections. include/elf/ 2007-01-04 H.J. Lu * common.h (PT_GNU_SHR): New. (SHF_GNU_SHARABLE): Likewise. (SHN_GNU_SHARABLE_COMMON): Likewise. ld/ 2011-01-08 H.J. Lu * emulparams/elf32_x86_64.sh (SHARABLE_SECTIONS): Set to yes. 2007-01-04 H.J. Lu * emulparams/elf64_ia64.sh (SHARABLE_SECTIONS): Set to yes. * emulparams/elf_i386.sh (SHARABLE_SECTIONS): Likewise. * emulparams/elf_x86_64.sh (SHARABLE_SECTIONS): Likewise. * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set link_info.sharable_sections based on $SHARABLE_SECTIONS. (gld${EMULATION_NAME}_place_orphan): Don't allow orphaned sharable sections. * ldmain.c (main): Initialize link_info.sharable_sections. * scripttempl/elf.sc: Support sharable sections.