OSDN Git Service

pf3gnuchains/pf3gnuchains4x.git
16 years ago2008-05-12 Samuel Tardieu <sam@rfc1149.net>
Paolo Bonzini [Mon, 12 May 2008 16:25:40 +0000 (16:25 +0000)]
2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
    Paolo Bonzini  <bonzini@gnu.org>

PR ada/36001
* acx.m4: Add optional parameter to ACX_PROG_GNAT.

16 years ago PR 6443
Alan Modra [Mon, 12 May 2008 12:47:47 +0000 (12:47 +0000)]
PR 6443
* elf32-ppc.c (MUST_BE_DYN_RELOC): Delete.
(must_be_dyn_reloc): New function.
(ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs
in pies.
(ppc_elf_tls_optimize): Optimise pies.
(ppc_elf_relocate_section): Use a section symbol rather than no
symbol if possible for LD->IE TLS sequence, but don't error if
we must use no symbol.
* elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c.
(must_be_dyn_reloc): Likewise.
(ppc64_elf_check_relocs): Likewise.
(ppc64_elf_tls_optimize): Likewise.
(ppc64_elf_relocate_section): Likewise.

16 years ago * embedspu.sh: Test for presence of ._ea by looking at section
Alan Modra [Mon, 12 May 2008 12:23:13 +0000 (12:23 +0000)]
* embedspu.sh: Test for presence of ._ea by looking at section
table rather than looking at relocs.  Correct toe_addr substitution.

16 years ago * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.
Alan Modra [Mon, 12 May 2008 12:22:53 +0000 (12:22 +0000)]
* elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym.

16 years ago * src-release (BINUTILS_SUPPORT_DIRS): Add elfcpp and gold.
Ian Lance Taylor [Mon, 12 May 2008 04:12:15 +0000 (04:12 +0000)]
* src-release (BINUTILS_SUPPORT_DIRS): Add elfcpp and gold.

16 years agodaily update
Alan Modra [Mon, 12 May 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years agodaily update
Alan Modra [Sun, 11 May 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years ago * elfcore.h (elf_core_file_p): Warn about core truncation.
Alan Modra [Sat, 10 May 2008 01:58:17 +0000 (01:58 +0000)]
* elfcore.h (elf_core_file_p): Warn about core truncation.

16 years agodaily update
Alan Modra [Sat, 10 May 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years ago gas/
Catherine Moore [Fri, 9 May 2008 19:28:47 +0000 (19:28 +0000)]
gas/
        * config/tc-mips.c (mips_frob_file): Don't match MIPS16 relocs
        with non-MIPS16 relocs.

        gas/testsuite/
        * gas/mips/mips16-hilo-match.s: New test.
        * gas/mips/mip16-hilo-match.d: New test output.Index: config/tc-mips.c

16 years ago* config/tc-mips.c (md_begin): Use strncmp to compare TARGET_OS, in
Chao-ying Fu [Fri, 9 May 2008 18:18:22 +0000 (18:18 +0000)]
* config/tc-mips.c (md_begin): Use strncmp to compare TARGET_OS, in
case that some characters append at the end of the name.
(mips_ip): Likewise.
(s_change_sec): Likewise.
(md_section_align): Likewise.

16 years ago PR 6493
Ian Lance Taylor [Fri, 9 May 2008 14:13:06 +0000 (14:13 +0000)]
PR 6493
* gold.cc (gold_nomem): Use return value of write.

16 years ago2008-05-09 Kai Tietz <kai.tietz@onevision.com>
Kai Tietz [Fri, 9 May 2008 11:56:31 +0000 (11:56 +0000)]
2008-05-09  Kai Tietz  <kai.tietz@onevision.com>

ld/PR6502
* emultempl/pep.em (compute_dll_image_base): Use bfd_vma instead of long
and change return type to bfd_vma.
(definfo): Change type of address from long to bfd_vma.
(set_pep_value): Replace strtoul to strtoull.
(gld_${EMULATION_NAME}_set_symbols): use bfd_vma instead of long..
* pe-dll.c (pe_dll_generate_def_file): Use fprintf_vma to print ImageBase.
(quick_reloc): Change argument address from int to bfd_size_type.

16 years agodaily update
Alan Modra [Fri, 9 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * symtab.c (Symbol::init_base_output_data): Add version
Ian Lance Taylor [Thu, 8 May 2008 18:44:33 +0000 (18:44 +0000)]
* symtab.c (Symbol::init_base_output_data): Add version
parameter.  Change all callers.
(Symbol::init_base_output_segment): Likewise.
(Symbol::init_base_constant): Likewise.
(Symbol::init_base_undefined): Likewise.
(Sized_symbol::init_output_data): Likewise.
(Sized_symbol::init_output_segment): Likewise.
(Sized_symbol::init_constant): Likewise.
(Sized_symbol::init_undefined): Likewise.
(Symbol_table::do_define_in_output_data): If the new symbol has a
version, mark it as the default.
(Symbol_table::do_define_in_output_segment): Likewise.
(Symbol_table::do_define_as_constant): Likewise.
* symtab.h (class Symbol): Update declarations.
(class Sized_symbol): Likewise.
* resolve.cc (Symbol::override_version): New function.
(Symbol::override_base: Call override_version.
(Symbol::override_base_with_special): Likewise.
* testsuite/ver_script_8.script: New file.
* testsuite/Makefile.am (check_PROGRAMS): Add ver_test_8.
(ver_test_8_SOURCES, ver_test_8_DEPENDENCIES): Define.
(ver_test_8_LDFLAGS, ver_test_8_LDADD): Define.
(ver_test_8_1.so, ver_test_8_2.so): New targets.

16 years ago * ld.texinfo (PowerPC64 ELF64): Fix typo.
Tom Tromey [Thu, 8 May 2008 17:34:36 +0000 (17:34 +0000)]
* ld.texinfo (PowerPC64 ELF64): Fix typo.

16 years agodaily update
Alan Modra [Thu, 8 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years agobfd/
Bob Wilson [Wed, 7 May 2008 23:13:09 +0000 (23:13 +0000)]
bfd/
        * elf32-xtensa.c (xtensa_property_section_name): New.
        (xtensa_make_property_section): New.
        (xtensa_get_property_section): Make static.  Do not create a new
        section if it does not exist.
gas/
        * config/tc-xtensa.c (xtensa_create_property_segments): Use
        xtensa_make_property_section instead of xtensa_get_property_section.
        (xtensa_create_xproperty_segments): Likewise.

16 years agobfd/
Alan Modra [Wed, 7 May 2008 14:46:44 +0000 (14:46 +0000)]
bfd/
* elf32-spu.c (spu_elf_special_sections): Add "._ea".
(spu_elf_relocate_section): Handle relocations against symbols
defined in ._ea specially.
binutils/
* embedspu.sh: Take note of R_SPU_PPU32/64 relocs without a symbol,
and if present, put image in ".data.speelf".  Put program handle
in ".data.spehandle".
ld/emulparams/
* elf32_spu.sh (OTHER_SECTIONS): Add "._ea".
* elf32ppc.sh: If building with spu support, put ".data.spehandle"
sections at the start of ".data" and provide a symbol to locate
the directory of embedded spe programs.
ld/testsuite/
* ld-spu/ear.s: Align various sections.
* ld-spu/embed.rd: Update.

16 years ago * ldexp.c (exp_print_token): Add ABSOLUTE, MIN_K, ASSERT_K. Correct
Alan Modra [Wed, 7 May 2008 14:30:41 +0000 (14:30 +0000)]
* ldexp.c (exp_print_token): Add ABSOLUTE, MIN_K, ASSERT_K.  Correct
MAX_K.
(fold_binary <SEGMENT_START>): Set expld.result.section to
current section.  Expand comment.  Formatting.
(fold_name <DEFINED>): Set expld.result.section to current section.

16 years ago PR 6049
Ian Lance Taylor [Wed, 7 May 2008 06:08:01 +0000 (06:08 +0000)]
PR 6049
* options.h (DEFINE_set): Add VARNAME_begin and VARNAME_end
functions.
(class General_options): Remove existing --undefined, and add
--no-undefined instead.  Add new --undefined as synonym for -u.
* archive.cc (Archive::add_symbols): Check whether symbol was
named with -u.
* gold.cc (queue_middle_tasks): Add -u symbols to symbol table.
* symtab.h (class Symbol): Rename CONSTANT to IS_CONSTANT; change
all uses.  Add IS_UNDEFINED.  Update declarations to split
different versions of init_base.  Declare init_base_undefined.
(Symbol::is_defined): Handle IS_UNDEFINED.
(Symbol::is_undefined): Likewise.
(Symbol::is_weak_undefined): Call is_undefined.
(Symbol::is_absolute): Handle IS_CONSTANT.
(class Sized_symbol): Update declarations to split different
versions of init.  Declare init_undefined.
(class Symbol_table): Declare new functions.
* symtab.cc (Symbol::init_base_object): Rename from init_base.
Change all callers.
(Symbol::init_base_output_data): Likewise.
(Symbol::init_base_output_segment): Likewise.
(Symbol::init_base_constant): Likewise.
(Symbol::init_base_undefined): New function.
(Sized_symbol::init_object): Rename from init.  Change all
callers.
(Sized_symbol::init_output_data): Likewise.
(Sized_symbol::init_output_segment): Likewise.
(Sized_symbol::init_constant): Likewise.
(Sized_symbol::init_undefined): New function.
(Symbol_table::add_undefined_symbols_from_command_line): New
function.
(Symbol_table::do_add_undefined_symbols_from_command_line): New
function.
(Symbol::final_value_is_known): Handle IS_UNDEFINED.
(Symbol::output_section): Likewise.
(Symbol::set_output_section): Likewise.
(Symbol_table::sized_finalize_symbol): Likewise.
(Symbol_table::sized_write_globals): Likewise.
* resolve.cc (Symbol_table::should_override): Likewise.
(Symbol::override_base_with_special): Likewise.

16 years agomissed from last commit
Alan Modra [Wed, 7 May 2008 04:52:35 +0000 (04:52 +0000)]
missed from last commit

16 years agodaily update
Alan Modra [Wed, 7 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected
Ian Lance Taylor [Tue, 6 May 2008 22:24:26 +0000 (22:24 +0000)]
* symtab.cc (Symbol_table::add_from_dynobj): If we see a protected
symbol, change it to have default visibility.
* testsuite/protected_1.cc: New file.
* testsuite/protected_2.cc: New file.
* testsuite/protected_3.cc: New file.
* testsuite/protected_main_1.cc: New file.
* testsuite/protected_main_2.cc: New file.
* testsuite/protected_main_3.cc: New file.
* testsuite/Makefile.am (check_PROGRAMS): Add protected_1.
(protected_1_SOURCES, protected_1_DEPENDENCIES): Define.
(protected_1_LDFLAGS, protected_1_LDADD): Define.
(protected_1.so): New target.
(protected_1_pic.o, protected_2_pic.o): New targets.
(protected_3_pic.o): New target.
(check_PROGRAMS): Add protected_2.
(protected_2_SOURCES, protected_2_DEPENDENCIES): Define.
(protected_2_LDFLAGS, protected_2_LDADD): Define.
* testsuite/Makefile.in: Rebuild.

16 years ago * options.h (DEFINE_var): Add set_user_set_##varname__.
Ian Lance Taylor [Tue, 6 May 2008 20:40:33 +0000 (20:40 +0000)]
* options.h (DEFINE_var): Add set_user_set_##varname__.
(DEFINE_bool_alias): New macro.
(class General_options): Define -Bstatic using DEFINE_bool_alias
rather than DEFINE_special.  Add --undefined as an alias for -z
defs.
* options.cc (General_options::parse_Bstatic): Remove.

16 years ago * options.h (class General_options): Add --fatal-warnings.
Ian Lance Taylor [Tue, 6 May 2008 18:32:38 +0000 (18:32 +0000)]
* options.h (class General_options): Add --fatal-warnings.
* main.cc (main): Implement --fatal-warnings.
* errors.h (Errors::warning_count): New function.

16 years ago * options.h (class General_options): Add -Bsymbolic-functions.
Ian Lance Taylor [Tue, 6 May 2008 17:46:31 +0000 (17:46 +0000)]
* options.h (class General_options): Add -Bsymbolic-functions.
* symtab.h (Symbol::is_preemptible): Check for
-Bsymbolic-functions.

16 years agoCorrect last patch.
Ian Lance Taylor [Tue, 6 May 2008 05:54:21 +0000 (05:54 +0000)]
Correct last patch.

16 years ago2008-05-05 Ian Lance Taylor <iant@google.com>
Ian Lance Taylor [Tue, 6 May 2008 05:03:15 +0000 (05:03 +0000)]
2008-05-05  Ian Lance Taylor  <iant@google.com>

* options.h (DEFINE_bool): For DASH_Z, create the negative option
as noVARNAME rather than no-VARNAME.
(class General_options): Add option -z combreloc.
* output.h (class Output_reloc) [SHT_REL]: Declare compare and
get_address.
(Output_reloc::sort_before) [SHT_REL]: New function.
(Output_reloc::sort_before) [SHT_RELA]: New function.
(class Output_data_reloc_base): Add sort_relocs_ field.  Define
Sort_relocs_comparison.
(Output_data_reloc_base::Output_data_reloc_base): Add sort_relocs
parameter.  Change all callers.
(Output_data_reloc::Output_data_reloc) [both versions]: Add
sort_relocs parameter.  Change all callers.
* output.cc (Output_reloc::get_address): New function, broken out
of write_rel.
(Output_reloc::write_rel): Call it.
(Output_reloc::compare): New function.
(Output_data_reloc_base::do_write): Optionally sort relocs.

16 years agodaily update
Alan Modra [Tue, 6 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * configure.ac: If targ_extra_obj is set, link it in.
Ian Lance Taylor [Mon, 5 May 2008 20:20:21 +0000 (20:20 +0000)]
* configure.ac: If targ_extra_obj is set, link it in.
* configure.tgt: Initialize all variables.
(x86_64*): Set targ_extra_obj and targ_extra_size.
* configure: Rebuild.

16 years ago * object.cc (Sized_relobj::include_section_group): Adjust section
Ian Lance Taylor [Mon, 5 May 2008 19:16:43 +0000 (19:16 +0000)]
* object.cc (Sized_relobj::include_section_group): Adjust section
indexes read from group data.  Build vector to pass to
layout_group.
* layout.cc (Layout::layout_group): Add flags and shndxes
parameters.  Remove contents parameter.  Change caller.  Update
explicit instantiations.
* layout.h (class Layout): Update layout_group declaration.
* output.cc (Output_data_group::Output_data_group): Add flags and
input_shndxes parameters.  Remove contents parameter.  Change
caller.
(Output_data_group::do_write): Change input_sections_ to
input_shndxes_.
* output.h (class Output_data_group): Update constructor
declaration.  Rename input_sections_ to input_shndxes_.
* testsuite/many_sections_test.cc: Add template.

16 years ago PR 6473
Alan Modra [Mon, 5 May 2008 01:43:55 +0000 (01:43 +0000)]
PR 6473
* ld-elf/lma.s, ld-elf/lma.lnk: New test.
* ld-elf/binutils.exp: Run it.

16 years agodaily update
Alan Modra [Mon, 5 May 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years agodaily update
Alan Modra [Sun, 4 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
Daniel Jacobowitz [Sat, 3 May 2008 15:36:34 +0000 (15:36 +0000)]
* elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
ARRAY_SIZE.
(elf32_arm_symbian_plt_sym_val): New.
(elf_backend_plt_sym_val): Define.

16 years ago2008-05-03 Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Sat, 3 May 2008 06:19:19 +0000 (06:19 +0000)]
2008-05-03  Mike Frysinger  <vapier@gentoo.org>

* ld-scripts/defined.s: Use .set syntax rather than =.

16 years ago PR 2995, PR 6473
Alan Modra [Sat, 3 May 2008 05:18:02 +0000 (05:18 +0000)]
PR 2995, PR 6473
* elf.c (rewrite_elf_program_header): Rather than clearing
p_paddr_valid at end, don't set it in the first place.  Delete
comment no longer relevant.  When not p_paddr_valid, don't set
paddr from vaddr, and don't set p_vaddr_offset.

16 years agodaily update
Alan Modra [Sat, 3 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years agogas/
H.J. Lu [Fri, 2 May 2008 16:53:40 +0000 (16:53 +0000)]
gas/

2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>

* NEWS: Mention XSAVE, EPT and MOVBE.

* config/tc-i386.c (cpu_arch): Add .movbe and .ept.
(md_show_usage): Add .movbe and .ept.

* doc/c-i386.texi: Add movbe and ept to -march=.  Document
.movbe and .ept.

gas/testsuite/

2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>

* gas/i386/i386.exp: Run movbe, movbe-intel, inval-movbe, ept,
ept-intel, inval-ept, x86-64-movbe, x86-64-movbe-intel,
x86-64-inval-movbe.  x86-64-ept, x86-64-ept-intel and
x86-64-inval-ept.

* gas/i386/arch-10.s: Add movbe and invept.
* gas/i386/x86-64-arch-2.s: Likewise.

* gas/i386/ept.d: New file
* gas/i386/ept-intel.d: Likewise.
* gas/i386/ept.s: Likewise.
* gas/i386/inval-ept.l: Likewise.
* gas/i386/inval-ept.s: Likewise.
* gas/i386/inval-movbe.l: Likewise.
* gas/i386/inval-movbe.s: Likewise.
* gas/i386/movbe.d: Likewise.
* gas/i386/movbe-intel.d: Likewise.
* gas/i386/movbe.s: Likewise.
* gas/i386/x86-64-inval-ept.l: Likewise.
* gas/i386/x86-64-inval-ept.s: Likewise.
* gas/i386/x86-64-inval-movbe.l: Likewise.
* gas/i386/x86-64-inval-movbe.s: Likewise.
* gas/i386/x86-64-ept.d: Likewise.
* gas/i386/x86-64-ept-intel.d: Likewise.
* gas/i386/x86-64-ept.s: Likewise.
* gas/i386/x86-64-movbe.d: Likewise.
* gas/i386/x86-64-movbe-intel.d: Likewise.
* gas/i386/x86-64-movbe.s: Likewise.

* gas/i386/arch-10.d: Updated.
* gas/i386/arch-10-1.l: Likewise.
* gas/i386/arch-10-2.l: Likewise.
* gas/i386/arch-10-3.l: Likewise.
* gas/i386/arch-10-4.l: Likewise.
* gas/i386/x86-64-arch-2.d: Likewise.

opcodes/

2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>

* i386-dis.c (MOVBE_Fixup): New.
(Mo): Likewise.
(PREFIX_0F3880): Likewise.
(PREFIX_0F3881): Likewise.
(PREFIX_0F38F0): Updated.
(prefix_table): Add PREFIX_0F3880 and PREFIX_0F3881.  Update
PREFIX_0F38F0 and PREFIX_0F38F1 for movbe.
(three_byte_table): Use PREFIX_0F3880 and PREFIX_0F3881.

* i386-gen.c (cpu_flag_init): Add CPU_MOVBE_FLAGS and
CPU_EPT_FLAGS.
(cpu_flags): Add CpuMovbe and CpuEPT.

* i386-opc.h (CpuMovbe): New.
(CpuEPT): Likewise.
(CpuLM): Updated.
(i386_cpu_flags): Add cpumovbe and cpuept.

* i386-opc.tbl: Add entries for movbe and EPT instructions.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.

16 years ago2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
H.J. Lu [Fri, 2 May 2008 15:11:49 +0000 (15:11 +0000)]
2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/6475
* ld-scripts/rgn-over8-ok.d: Accept any alignment.

16 years agodaily update
Alan Modra [Fri, 2 May 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
Cary Coutant [Thu, 1 May 2008 17:06:52 +0000 (17:06 +0000)]
* elf.c (bfd_elf_get_str_section): Fix memory leak caused by
corrupt string table.

16 years ago * cache.c (cache_bread_1): Renames cache_bread.
Joel Brobecker [Thu, 1 May 2008 15:45:43 +0000 (15:45 +0000)]
    * cache.c (cache_bread_1): Renames cache_bread.
        (cache_bread): New function.

16 years ago* readelf.c (print_symbol): Add code to display non-printing characters.
Nick Clifton [Thu, 1 May 2008 14:34:51 +0000 (14:34 +0000)]
* readelf.c (print_symbol): Add code to display non-printing characters.

16 years ago PR 2995, PR 6473
Alan Modra [Thu, 1 May 2008 14:13:58 +0000 (14:13 +0000)]
PR 2995, PR 6473
* elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
(assign_file_positions_for_load_sections): Combine nested "if".
(copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
when all header p_paddr fields are zero.

16 years ago * target-reloc.h (relocate_section): Fix dead-pointer bug.
Cary Coutant [Thu, 1 May 2008 02:01:23 +0000 (02:01 +0000)]
* target-reloc.h (relocate_section): Fix dead-pointer bug.

16 years ago * layout.cc (Layout::include_section): Refactored check for debug
Cary Coutant [Thu, 1 May 2008 01:23:21 +0000 (01:23 +0000)]
* layout.cc (Layout::include_section): Refactored check for debug
info section.
(Layout::add_comdat): Add new parameters.  Change type
of signature parameter.  Add object and shndx to signatures table.
(Layout::find_kept_object): New function.
* layout.h: Include <cstring>.
(Layout::is_debug_info_section): New function.
(Layout::add_comdat): Add new parameters.
(Layout::find_kept_object): New function.
(Layout::Kept_section): New struct.
(Layout::Signatures): Change type of map range.
* object.cc (Relobj::output_section_address): New function.
(Sized_relobj::include_section_group): Add new parameters.  Change
calls to Layout::add_comdat.  Change to build table of kept comdat
groups and table mapping discarded sections to kept sections.
(Sized_relobj::include_linkonce_section): Likewise.  Add new parameter.
(Sized_relobj::do_layout): Change calls to include_section_group and
include_linkonce_section.
(Sized_relobj::do_finalize_local_symbols): Do not set local symbol
value to zero when section is discarded.
(Sized_relobj::map_to_kept_section): New function.
* object.h (Relobj::output_section_address): New function.
(Relobj::Comdat_group): New type.
(Relobj::find_comdat_group): New function.
(Relobj::Comdat_group_table): New type.
(Relobj::Kept_comdat_section): New type.
(Relobj::Kept_comdat_section_table): New type.
(Relobj::add_comdat_group): New function.
(Relobj::set_kept_comdat_section): New function.
(Relobj::get_kept_comdat_section): New function.
(Relobj::comdat_groups_): New field.
(Relobj::kept_comdat_sections_): New field.
(Symbol_value::input_value): Update comment.
(Sized_relobj::map_to_kept_section) New function.
(Sized_relobj::include_linkonce_section): Add new parameter.
* target-reloc.h (Comdat_behavior): New type.
(get_comdat_behavior): New function.
(relocate_section): Add code to map a discarded section to the
corresponding kept section when applying a relocation.

16 years ago * dwarf_reader.cc (next_generation_count): New static var.
Craig Silverstein [Thu, 1 May 2008 00:25:33 +0000 (00:25 +0000)]
* dwarf_reader.cc (next_generation_count): New static var.
(Addr2line_cache_entry): New struct.
(addr2line_cache): New static var.
(Dwarf_line_info::one_addr2line): Added caching.
(Dwarf_line_info::clear_addr2line_cache): New function.
* dwarf_reader.h (Dwarf_line_info::one_addr2line): Add
cache-size parameter.
(Dwarf_line_info::one_addr2line_cache): New function.
* symtab.cc (Symbol_table::detect_odr_violations): Pass
new cache-size argument to one_addr2line(), and clear cache.

16 years agodaily update
Alan Modra [Thu, 1 May 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years ago * doc/binutils.texi (strings): Add "unicode" to the documentation
Nick Clifton [Wed, 30 Apr 2008 07:27:17 +0000 (07:27 +0000)]
    * doc/binutils.texi (strings): Add "unicode" to the documentation
        of strings in order to make explicit that it supports this
        feature.

16 years agomissed from 20080414 commit for e500mc support
Alan Modra [Wed, 30 Apr 2008 06:47:24 +0000 (06:47 +0000)]
missed from 20080414 commit for e500mc support

16 years ago * config/tc-sparc.c (v9a_asr_table): Fix order of softint entries.
David S. Miller [Wed, 30 Apr 2008 03:50:39 +0000 (03:50 +0000)]
* config/tc-sparc.c (v9a_asr_table): Fix order of softint entries.

16 years ago * readelf.c (process_program_headers): Correct section in segment
Alan Modra [Wed, 30 Apr 2008 02:09:48 +0000 (02:09 +0000)]
* readelf.c (process_program_headers): Correct section in segment
display.

16 years agodaily update
Alan Modra [Wed, 30 Apr 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years ago * mips-opc.c (mips_builtin_opcodes): Set field `match' to 0 for
Adam Nemet [Tue, 29 Apr 2008 23:27:01 +0000 (23:27 +0000)]
* mips-opc.c (mips_builtin_opcodes): Set field `match' to 0 for
the two drem and the two dremu macros.

16 years ago * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
Daniel Jacobowitz [Tue, 29 Apr 2008 11:53:45 +0000 (11:53 +0000)]
* elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
(_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
even if they are not loaded.
* elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
first.

* ld-arm/symbian-seg1.s, ld-arm/symbian-seg1.d: New files.
* ld-arm/arm-elf.exp: Run symbian-seg1.

16 years agodaily update
Alan Modra [Tue, 29 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * i386.cc (Relocate::relocate): Fix typos for R_386_PC16 and
Cary Coutant [Mon, 28 Apr 2008 23:09:21 +0000 (23:09 +0000)]
* i386.cc (Relocate::relocate): Fix typos for R_386_PC16 and
R_386_PC8 relocations.

16 years ago * gas/mips/mips4.s: Split out fp instruction from here ...
Adam Nemet [Mon, 28 Apr 2008 17:10:18 +0000 (17:10 +0000)]
* gas/mips/mips4.s: Split out fp instruction from here ...
* gas/mips/mips4-fp.s: ... to here.
* gas/mips/mips4.d: Update.
* gas/mips/mips4-fp.l: New file. Check error messages with
-msoft-float.
* gas/mips/mips4-fp.d: New file. Check disassembly with
hard-float.

* gas/mips/mips32r2.s: Split out fp instructions from here ...
* gas/mips/mips32r2-fp32.s: ... to here.
* gas/mips/mips32r2.d: Update.
* gas/mips/mips32r2-fp32.l: New file.  Check error messages with
-msoft-float.
* gas/mips/mips32r2-fp32.d: New file.  Check disassembly with
hard-float.

* gas/mips/mips32r2-ill-nofp.s, gas/mips/mips32r2-ill-nofp.l: New
test derived from mips32r2-ill.

* gas/mips/mips32-sf32.l: New list test for mips32-sf32.s to check
error messages for soft-float targets.

* gas/mips/mips-macro-ill-sfp.s, gas/mips/mips-macro-ill-sfp.l:
New test for -msingle-float.
* gas/mips/mips-macro-ill-nofp.s, gas/mips/mips-macro-ill-nofp.l:
New test for -msoft-float.
* gas/mips/mips-hard-float-flag.s,
gas/mips/mips-hard-float-flag.l: New test for -mhard-float.
* gas/mips/mips-double-float-flag.s,
gas/mips/mips-double-float-flag.l: New test for -mdouble-float.

* gas/mips/mips.exp: Run new mips4-fp and mips32r2-fp dump tests.
Run mips4-fp and mips32r2-fp list tests with -msoft-float.  Run
new mips32r2-ill-nofp with -msoft-float.  Run new mips32-sf32 list
test with -msoft-float.  Run new mips-macro-ill-sfp test with
-msingle-float.  Run new mips-macro-ill-nofp test with
-msoft-float.  Run new mips-hard-float-flag and
mips-double-float-flag tests.

16 years ago * config/tc-mips.c (file_mips_soft_float, file_mips_single_float):
Adam Nemet [Mon, 28 Apr 2008 17:06:28 +0000 (17:06 +0000)]
* config/tc-mips.c (file_mips_soft_float, file_mips_single_float):
New statics.
(OPTION_ELF_BASE): Make room for new option macros.
(OPTION_SOFT_FLOAT, OPTION_HARD_FLOAT, OPTION_SINGLE_FLOAT,
OPTION_DOUBLE_FLOAT): New option macros.
(md_longopts): Add msoft-float, mhard-float, msingle-float and
mdouble-float.
(md_parse_option): Handle OPTION_SINGLE_FLOAT,
OPTION_DOUBLE_FLOAT, OPTION_SOFT_FLOAT and OPTION_HARD_FLOAT.
(md_show_usage): Add -msoft-float, -mhard-float, -msingle-float
and -mdouble-float.
(struct mips_set_options): New fields soft_float and single_float.
(mips_opts): Initialized them.  Add comment for each field
initializer.
(mips_after_parse_args): Set them based on file_mips_soft_float
and file_mips_single_float.
(s_mipsset): Add support for `.set softfloat', `.set hardfloat',
`.set singlefloat' and `.set doublefloat'.
(is_opcode_valid): New function to invoke OPCODE_IS_MEMBER.
Handle single-float and soft-float instructions here.
(macro_build, mips_ip): Use it instead of OPCODE_IS_MEMBER.
(is_opcode_valid_16): New function.
(mips16_ip): Use it instead of OPCODE_IS_MEMBER.
(macro) <M_LDC1_AB, M_SDC1_AB, M_L_DOB, M_L_DAB, M_S_DAB,
M_S_DOB>: Remove special-casing of r4650.
* doc/c-mips.texi (-march=): Add Octeon.
(MIPS Opts): Document -msoft-float and -mhard-float.  Document
-msingle-float and -mdouble-float.
(MIPS floating-point): New section.  Document `.set softfloat' and
`.set hardfloat'.  Document `.set singlefloat' and `.set
doublefloat'.

16 years ago * mips-opc.c (mips_builtin_opcodes): Mark prefx and c1
Adam Nemet [Mon, 28 Apr 2008 17:03:58 +0000 (17:03 +0000)]
* mips-opc.c (mips_builtin_opcodes): Mark prefx and c1
instructions FP_S.  Mark l.s, li.s, lwc1, swc1, s.s, trunc.w.s and
cop1 macros INSN2_M_FP_S.  Mark l.d, li.d, ldc1 and sdc1 macros
INSN2_M_FP_D.  Mark trunc.w.d macro INSN2_M_FP_S and INSN2_M_FP_D.

16 years ago * mips.h (INSN_MACRO): Move it up to the the pinfo macros.
Adam Nemet [Mon, 28 Apr 2008 16:59:27 +0000 (16:59 +0000)]
* mips.h (INSN_MACRO): Move it up to the the pinfo macros.
(INSN2_M_FP_S, INSN2_M_FP_D): New pinfo2 macros.

16 years ago * ld-scripts/rgn-over8.s: Tweak.
Nathan Sidwell [Mon, 28 Apr 2008 14:08:15 +0000 (14:08 +0000)]
* ld-scripts/rgn-over8.s: Tweak.

16 years agold/
Nathan Sidwell [Mon, 28 Apr 2008 12:45:34 +0000 (12:45 +0000)]
ld/
* ldlang.c (lang_size_sections_1): Don't check LMA overflow on
non-load sections.
ld/testsuite/
* ld-scripts/rgn-over.exp: Allow -ok file names to pass.
* ld-scripts/rgn-over8.s: New.
* ld-scripts/rgn-over8.t: New.
* ld-scripts/rgn-over8-ok.d: New.

16 years ago PR binutils/6449
Nick Clifton [Mon, 28 Apr 2008 08:30:23 +0000 (08:30 +0000)]
            PR binutils/6449
                * objdump.c (slurp_file): Open the file in binary mode.
                * ar.c: Remove conditional definition of O_BINARY.
                * bin2.c: Likewise.
                * rename.c: Likewise.
                * strings.c: Likewise.
                * sysdep.h: Add conditional definition of O_BINARY.

16 years agodaily update
Alan Modra [Mon, 28 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years agodaily update
Alan Modra [Sun, 27 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago2008-04-25 Michael Frysinger <vapier@gentoo.org>
Mike Frysinger [Sat, 26 Apr 2008 01:10:55 +0000 (01:10 +0000)]
2008-04-25  Michael Frysinger  <vapier@gentoo.org>

* configure.tgt (bfin-*-linux-uclibc*): Set targ_emul to elf32bfinfd
and targ_extra_emuls to elf32bfin.

16 years agodaily update
Alan Modra [Sat, 26 Apr 2008 00:00:04 +0000 (00:00 +0000)]
daily update

16 years agogas/
David S. Miller [Fri, 25 Apr 2008 19:58:03 +0000 (19:58 +0000)]
gas/

* config/tc-sparc.c: Accept 'softint_clear' and 'softint_set'
%asr aliases.

* doc/c-sparc.texi: Consistently refer to architecture 'versions',
rather than occaisionally 'levels'.  Consistently refer to Sun's
UNIX variant as SunOS, every version of Solaris is also SunOS.
Document new 'softint_clear' and 'softint_set' aliases.  Clarify
which architecture versions support '%dcr', '%cq', and '%gl'. Add
section on 32-bit/64-bit opcode translations.

opcodes/

* sparc-dis.c: Emit %stick instead of %sys_tick, and %stick_cmpr
instead of %sys_tick_cmpr, as suggested in architecture manuals.

16 years ago* reloc16.c (bfd_coff_reloc16_get_value): Add support for
Nick Clifton [Fri, 25 Apr 2008 16:02:43 +0000 (16:02 +0000)]
* reloc16.c (bfd_coff_reloc16_get_value): Add support for
  undefined weak symbols.

16 years ago * po/vi.po: Updated Vietnamese translation.
Nick Clifton [Fri, 25 Apr 2008 14:52:23 +0000 (14:52 +0000)]
    * po/vi.po: Updated Vietnamese translation.

16 years agodaily update
Alan Modra [Fri, 25 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago(oops) Add changelog entry for David Miller's SunPRO support patch which was
Nick Clifton [Thu, 24 Apr 2008 08:20:55 +0000 (08:20 +0000)]
(oops) Add changelog entry for David Miller's SunPRO support patch which was
accidentally omitted yesterday.

16 years agodaily update
Alan Modra [Thu, 24 Apr 2008 00:00:04 +0000 (00:00 +0000)]
daily update

16 years ago2008-04-23 Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Wed, 23 Apr 2008 18:40:34 +0000 (18:40 +0000)]
2008-04-23  Mike Frysinger  <vapier@gentoo.org>

* Makefile.am (OBJ_FORMAT_CFILES): Add config/obj-fdpicelf.c.
(OBJ_FORMAT_HFILES): Add config/obj-fdpicelf.h.
(obj-fdpicelf.o): Define.
* Makefile.in: Regenerate.
* configure.tgt: Set bfd_gas to yes when fmt is fdpicelf.
(bfin-*-*): Delete.
(bfin-*-linux-uclibc): New; set fmt to fdpicelf and em to linux.
(bfin-*-uclinux*): New; set fmt to elf and em to linux.
* config/obj-fdpicelf.c: New.
* config/obj-fdpicelf.h: Likewise.
* config/tc-bfin.c (bfin_flags, bfin_pic_flag): Set default based on
the OBJ_FDPIC_ELF define.
(OPTION_NOPIC): Define.
(md_longopts): Add mnopic and mno-fdpic.
(md_parse_option): Handle OPTION_NOPIC.

16 years ago * object.cc (Sized_relobj::include_section_group): Check for
Ian Lance Taylor [Wed, 23 Apr 2008 17:40:19 +0000 (17:40 +0000)]
* object.cc (Sized_relobj::include_section_group): Check for
invalid section group.

16 years ago * object.cc (make_elf_object): Correct test for 64-bit ELF file
Ian Lance Taylor [Wed, 23 Apr 2008 17:32:53 +0000 (17:32 +0000)]
* object.cc (make_elf_object): Correct test for 64-bit ELF file
header size.

16 years ago * readsyms.cc (Read_symbols::do_read_symbols): Use get_view rather
Ian Lance Taylor [Wed, 23 Apr 2008 17:29:04 +0000 (17:29 +0000)]
* readsyms.cc (Read_symbols::do_read_symbols): Use get_view rather
than read for file header.
* archive.cc (Archive::include_member): Likewise.

16 years agobfd/
H.J. Lu [Wed, 23 Apr 2008 16:11:47 +0000 (16:11 +0000)]
bfd/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

binutils/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

gas/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

gold/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

gprof/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

ld/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

opcodes/

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* aclocal.m4: Regenerate.
* configure: Regenerate.

16 years ago2008-04-23 H.J. Lu <hongjiu.lu@intel.com>
H.J. Lu [Wed, 23 Apr 2008 16:01:10 +0000 (16:01 +0000)]
2008-04-23  H.J. Lu  <hongjiu.lu@intel.com>

* gas/i386/i386.exp: Run sse-noavx and x86-64-sse-noavx.

* gas/i386/sse-noavx.d: New.
* gas/i386/sse-noavx.s: Likewise.
* gas/i386/x86-64-sse-noavx.d: Likewise.
* gas/i386/x86-64-sse-noavx.s: Likewise.

16 years ago2008-04-23 H.J. Lu <hongjiu.lu@intel.com>
H.J. Lu [Wed, 23 Apr 2008 14:34:05 +0000 (14:34 +0000)]
2008-04-23  H.J. Lu  <hongjiu.lu@intel.com>

* gas/i386/sse2.s: Add tests for pmuludq, paddq and psubq.
* gas/i386/x86-64-simd.s: Likewise.

* gas/i386/sse2.d: Updated.
* gas/i386/x86-64-simd.d: Likewise.
* gas/i386/x86-64-simd-intel.d: Likewise.
* gas/i386/x86-64-simd-suffix.d: Likewise.

16 years ago * config/obj-elf.c (obj_elf_section_type): Add prototype
Nick Clifton [Wed, 23 Apr 2008 13:54:56 +0000 (13:54 +0000)]
    * config/obj-elf.c (obj_elf_section_type): Add prototype
        before obj_elf_section_word and add 'warn' arg.
        (obj_elf_section_word): Add type pointer arg, and if no #SECTION
        is matched, try checking for #SECTION_TYPE.
        (obj_elf_section): Adjust for new args.
        (obj_elf_type_name): New function.
        (obj_elf_type): Call it, and accept STT_foo number strings
        in .type statements as output by SunPRO compiler.

16 years ago2008-04-23 Paolo Bonzini <bonzini@gnu.org>
Paolo Bonzini [Wed, 23 Apr 2008 10:24:41 +0000 (10:24 +0000)]
2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

* confsubdir.m4: Remove.
* override.m4: Apply _AC_ARG_VALIDATE fix to all versions
but 2.62.

16 years agoopcodes/
David S. Miller [Wed, 23 Apr 2008 07:49:33 +0000 (07:49 +0000)]
opcodes/

* sparc-opc.c (asi_table): Add UltraSPARC and Niagara
extended values.
(prefetch_table): Add missing values.

gas/

* config/tc-sparc.c (v9a_asr_table): Add missing
'stick' and 'stick_cmpr', and document ordering rules
of table.
(tc_gen_reloc): Accept BFD_RELOC_SPARC_PC22 and
BFD_RELOC_SPARC_PC10.
* doc/c-sparc.texi: New section on Sparc constants.
Add documentation for %stick and %stick_cmpr.

gas/testsuite/

* gas/sparc/pc2210.d: New file.
* gas/sparc/pc2210.d: Likewise.
* gas/sparc/sparc.exp: Run new %pc22/%pc10 relocation test.

16 years agodaily update
Alan Modra [Wed, 23 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years agogas/
H.J. Lu [Tue, 22 Apr 2008 22:27:13 +0000 (22:27 +0000)]
gas/

2008-04-22  H.J. Lu  <hongjiu.lu@intel.com>

* config/tc-i386.c (md_assemble): Don't check SSE instructions
if noavx is 0.

opcodes/

2008-04-22  H.J. Lu  <hongjiu.lu@intel.com>

* i386-gen.c (opcode_modifiers): Add NoAVX.

* i386-opc.h (NoAVX): New.
(OldGcc): Updated.
(i386_opcode_modifier): Add noavx.

* i386-opc.tbl: Add NoAVX to SSE, SSE2, SSE3 and SSSE3
instructions which don't have AVX equivalent.
* i386-tbl.h: Regenerated.

16 years ago * archive.c (_bfd_write_archive_contents): Fix incorrect use of
Cary Coutant [Tue, 22 Apr 2008 00:12:23 +0000 (00:12 +0000)]
* archive.c (_bfd_write_archive_contents): Fix incorrect use of
ARFMAG.

16 years agodaily update
Alan Modra [Tue, 22 Apr 2008 00:00:06 +0000 (00:00 +0000)]
daily update

16 years agomerge from gcc
DJ Delorie [Mon, 21 Apr 2008 22:30:17 +0000 (22:30 +0000)]
merge from gcc

16 years agobfd/
Nathan Sidwell [Mon, 21 Apr 2008 17:54:25 +0000 (17:54 +0000)]
bfd/
* elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
set the value of undefined symbols in shared objects.
(_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
undefined symbols unless pointer equality is needed.
ld/testsuite/
* ld-vxworks/plt-mips1.s: New.
* ld-vxworks/plt-mips1.d: New.

16 years agodaily update
Alan Modra [Mon, 21 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years agodaily update
Alan Modra [Sun, 20 Apr 2008 00:00:05 +0000 (00:00 +0000)]
daily update

16 years ago * version.cc (version_string): Bump to 1.6.
Ian Lance Taylor [Sat, 19 Apr 2008 20:15:56 +0000 (20:15 +0000)]
* version.cc (version_string): Bump to 1.6.

16 years ago * testsuite/Makefile.am (many_sections_r_test): New target.
Ian Lance Taylor [Sat, 19 Apr 2008 19:43:13 +0000 (19:43 +0000)]
* testsuite/Makefile.am (many_sections_r_test): New target.
(many_sections_r_test_SOURCES): Remove.
(many_sections_r_test_DEPENDENCIES): Remove.
(many_sections_r_test_LDFLAGS): Remove.
(many_sections_r_test_LDADD): Remove.

16 years ago * object.cc (Sized_relobj::do_add_symbols): Always pass
Ian Lance Taylor [Sat, 19 Apr 2008 19:34:41 +0000 (19:34 +0000)]
* object.cc (Sized_relobj::do_add_symbols): Always pass
local_symbol_count_ to add_from_relobj.

16 years ago * testsuite/Makefile.am (many_sections_check.h): Only check one in
Ian Lance Taylor [Sat, 19 Apr 2008 19:15:36 +0000 (19:15 +0000)]
* testsuite/Makefile.am (many_sections_check.h): Only check one in
every thousand variables.
* testsuite/Makefile.in: Rebuild.

16 years ago * elfcpp_file.h (class Elf_file): Add large_shndx_offset_ field.
Ian Lance Taylor [Sat, 19 Apr 2008 18:33:19 +0000 (18:33 +0000)]
* elfcpp_file.h (class Elf_file): Add large_shndx_offset_ field.
(Elf_file::large_shndx_offset): New function.
(Elf_file::construct): Initialize large_shndx_offset_.
(Elf_File::initialize_shnum): If necessary, adjust shstrndx_ and
set large_shndx_offset_.

16 years ago * object.cc (Xindex::initialize_symtab_xindex): New function.
Ian Lance Taylor [Sat, 19 Apr 2008 18:30:58 +0000 (18:30 +0000)]
* object.cc (Xindex::initialize_symtab_xindex): New function.
(Xindex::read_symtab_xindex): New function.
(Xindex::sym_xindex_to_shndx): New function.
(Sized_relobj::find_symtab): Pick up SHT_SYMTAB_SHNDX section if
available.
(Sized_relobj::do_initialize_xindex): New function.
(Sized_relobj::do_read_symbols): Adjust section links.
(Sized_relobj::symbol_section_and_value): Add is_ordinary
parameter.  Change all callers.
(Sized_relobj::include_section_group): Adjust section links and
symbol section indexes.
(Sized_relobj::do_layout): Adjust section links.
(Sized_relobj::do_count_local_symbols): Adjust section links and
symbol section indexes.
(Sized_relobj::do_finalize_local_symbols): Distinguish between
ordinary and special symbols.
(Sized_relobj::write_local_symbols): Add symtab_xindex and
dynsym_xindex parameters.  Change all callers.  Adjust section
links.  Use SHN_XINDEX when needed.
(Sized_relobj::get_symbol_location_info): Adjust section links.
Don't get fooled by special symbols.
* object.h (class Xindex): Define.
(class Object): Add xindex_ parameter.  Declare virtual functoin
do_initialize_xindex.
(Object::adjust_sym_shndx): New function.
(Object::set_xindex): New protected function.
(class Symbol_value): Add is_ordinary_shndx_ field.
(Symbol_value::Symbol_value): Initialize is_ordinary_shndx_.
(Symbol_value::value): Assert ordinary section.
(Symbol_value::initialize_input_to_output_map): Likewise.
(Symbol_value::set_input_shndx): Add is_ordinary parameter.
Change all callers.
(Symbol_value::input_shndx): Add is_ordinary parameter.  Change
all callers.
(class Sized_relobj): Update declarations.
(Sized_relobj::local_symbol_input_shndx): Add is_ordinary
parameter.  Change all callers.
(Sized_relobj::adjust_shndx): New function.
* dynobj.cc (Sized_dynobj::Sized_dynobj): Initialize dynsym_shndx_
field.
(Sized_dynobj::find_dynsym_sections): Remove pdynsym_shndx
parameter.  Change all callers.  Pick up SHT_DYNSYM_SHNDX section
for SHT_DYNSYM section if available.  Set dynsym_shndx_ field.
(Sized_dynobj::read_dynsym_section): Adjust section links.
(Sized_dynobj::read_dynamic): Likewise.
(Sized_dynobj::do_read_symbols): Use dynsym_shndx_ field.  Adjust
section links.
(Sized_dynobj::do_initialize_xindex): New function.
* dynobj.h (class Sized_dynobj): Add dynsym_shndx_ field.  Declare
do_initialize_xindex.
(Sized_dynobj::adjust_shndx): New function.
* layout.cc (Layout::Layout): Initialize symtab_xindex_ and
dynsym_xindex_ fields.
(Layout::finalize): Add a call to set_section_indexes before
creating the symtab sections.
(Layout::set_section_indexes): Don't do anything if the section
already has a section index.
(Layout::create_symtab_sections): Add shnum parameter.  Change
caller.  Create .symtab_shndx section if needed.
(Layout::create_shdrs): Add shstrtab_section parameter.  Change
caller.
(Layout::allocated_output_section_count): New function.
(Layout::create_dynamic_symtab): Create .dynsym_shndx section if
needed.
* layout.h (class Layout): Add symtab_xindex_ and dynsym_xindex_
fields.  Update declarations.
(Layout::symtab_xindex): New function.
(Layout::dynsym_xindex): New function.
(class Write_symbols_task): Add layout_ field.
(Write_symbols_task::Write_symbols_task): Add layout parameter.
Change caller.
* output.cc (Output_section_headers::Output_section_headers): Add
shstrtab_section parameter.  Change all callers.
(Output_section_headers::do_sized_write): Store overflow values
for section count and section string table section index in
section header zero.
(Output_file_header::do_sized_write): Check for overflow of
section count and section string table section index.
(Output_symtab_xindex::do_write): New function.
(Output_symtab_xindex::endian_do_write): New function.
* output.h (class Output_section_headers): Add shstrtab_section_.
Update declarations.
(class Output_symtab_xindex): Define.
(Output_section::has_out_shndx): New function.
* symtab.cc (Symbol::init_fields): Initialize is_ordinary_shndx_
field.
(Symbol::init_base): Add st_shndx and is_ordinary parameters.
Change all callers.
(Sized_symbol::init): Likewise.
(Symbol::output_section): Check for ordinary symbol.
(Symbol_table::add_from_object): Remove orig_sym parameter.  Add
st_shndx, is_ordinary, and orig_st_shndx parameters.  Change all
callers.
(Symbol_table::add_from_relobj): Add symndx_offset parameter.
Change all callers.  Simplify handling of symbols from sections
not included in the link.
(Symbol_table::add_from_dynobj): Handle ordinary symbol
distinction.
(Weak_alias_sorter::operator()): Assert that symbols are
ordinary.
(Symbol_table::sized_finalize_symbol): Handle ordinary symbol
distinction.
(Symbol_table::write_globals): Add symtab_xindex and dynsym_xindex
parameters.  Change all callers.
(Symbol_table::sized_write_globals): Likewise.  Handle ordinary
symbol distinction.  Use SHN_XINDEX when needed.
(Symbol_table::write_section_symbol): Add symtab_xindex
parameter.  Change all callers.
(Symbol_table::sized_write_section_symbol): Likewise.  Use
SHN_XINDEX when needed.
* symtab.h (class Symbol): Add is_ordinary_shndx_ field.  Update
declarations.
(Symbol::shndx): Add is_ordinary parameter.  Change all callers.
(Symbol::is_defined): Check is_ordinary.
(Symbol::is_undefined, Symbol::is_weak_undefined): Likewise.
(Symbol::is_absolute, Symbol::is_common): Likewise.
(class Sized_symbol): Update declarations.
(class Symbol_table): Update declarations.
* resolve.cc (Symbol::override_base): Add st_shndx and is_ordinary
parameters.  Change all callers.
(Sized_symbol::override): Likewise.
(Symbol_table::override): Likewise.
(symbol_to_bits): Add is_ordinary parameter.  Change all callers.
(Symbol_table::resolve): Remove orig_sym parameter.  Add st_shndx,
is_ordinary, and orig_st_shndx parameters.  Change all callers.
* copy-relocs.cc (Copy_relocs::emit_copy_reloc): Require symbol
to be in an ordinary section.
* dwarf_reader.cc (Sized_dwarf_line_info::symbol_section): Add
object and is_ordinary parameters.  Change all callers.
(Sized_dwarf_line_info::read_relocs): Add object parameter.
Change all callers.  Don't add undefined or non-ordinary symbols
to reloc_map_.
(Sized_dwarf_line_info::read_line_mappings): Add object parameter.
Change all callers.
* dwarf_reader.h (class Sized_dwarf_line_info): Update
declarations.
* ehframe.cc (Eh_frame::read_fde): Check for ordinary symbol.
* reloc.cc (Sized_relobj::do_read_relocs): Adjust section links.
(Sized_relobj::relocate_sections): Likewise.
* target-reloc.h (scan_relocs): Adjust section symbol index.
(scan_relocatable_relocs): Likewise.
* i386.cc (Scan::local): Check for ordinary symbols.
* sparc.cc (Scan::local): Likewise.
* x86_64.cc (Scan::local): Likewise.
* testsuite/binary_unittest.cc (Sized_binary_test): Update calls
to symbol_section_and_value.
* testsuite/many_sections_test.cc: New file.
* testsuite/Makefile.am (BUILT_SOURCES): Define.
(check_PROGRAMS): Add many_sections_test.
(many_sections_test_SOURCES): Define.
(many_sections_test_DEPENDENCIES): Define.
(many_sections_test_LDFLAGS): Define.
(BUILT_SOURCES): Add many_sections_define.h.
(many_sections_define.h): New target.
(BUILT_SOURCES): Add many_sections_check.h.
(many_sections_check.h): New target.
(check_PROGRAMS): Add many_sections_r_test.
(many_sections_r_test_SOURCES): Define.
(many_sections_r_test_DEPENDENCIES): Define.
(many_sections_r_test_LDFLAGS): Define.
(many_sections_r_test_LDADD): Define.
(many_sections_r_test.o): New target.
* testsuite/Makefile.in: Rebuild.