* Add flags to ld_symbol struct to keep track of whether a GOT/PLT
  entry has been generated for the symbol.
* Add plt_off field to ld_symbol struct to record the location of
  the PLT entry for the symbol.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2743 95820547-d848-0410-985e-9ae8fe0fa350
* Make it possible to create more than 8 internal input sections.
* Use a hash table to speed up internal section lookup.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2744 95820547-d848-0410-985e-9ae8fe0fa350
Add function ld_dynamic_reserve_dynbss_entry which reserve space for
a symbol that needs a copy relocation.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2745 95820547-d848-0410-985e-9ae8fe0fa350
Add function ld_reloc_create_entry which creates relocation entries
and store them in the internal sections created to hold dynamic
relocations.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2746 95820547-d848-0410-985e-9ae8fe0fa350
Add helper functions for amd64 relocation processing:
_find_and_create_got_section:     create a GOT section
_find_and_create_gotplt_section:  create a GOT(for PLT) section
_find_and_create_plt_section:     create a PLT section
_reserve_got_entry:               reserve a GOT entry
_reserve_gotplt_entry:            reserve a GOT(for PLT) entry
_reserve_plt_entry:               reserve a PLT entry
_create_plt_reloc:                create a relocation for a PLT entry
_create_got_reloc:                create a relocation for a GOT entry
_create_copy_reloc:               create a copy relocation
_create_dynamic_reloc:            create a dynamic relocation

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2747 95820547-d848-0410-985e-9ae8fe0fa350
Add field "is_num_reloc" to ld_input_section struct to keep track of
the total number of relocation entries for an input section.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2748 95820547-d848-0410-985e-9ae8fe0fa350
Add fields to ld_output_section struct to store internal relocation
entries collected from input sections.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2749 95820547-d848-0410-985e-9ae8fe0fa350
Add flag "ld_dynamic_link" that indicates whether the linker is
performing a dynamic linking.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2750 95820547-d848-0410-985e-9ae8fe0fa350
Add arch-specific fields to customize relocation entry type and size.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2751 95820547-d848-0410-985e-9ae8fe0fa350
If "dynrel" flag (which indicates the section contains dynamic
relocation) is set for an input section, the flag should be set for
the output section too when join the input section to the output
section.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2752 95820547-d848-0410-985e-9ae8fe0fa350
Implement function ld_reloc_serialize which transforms an internal
relocation entry list into a byte stream.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2753 95820547-d848-0410-985e-9ae8fe0fa350
* Implement function ld_reloc_finalize_sections which updates the
  symbol index and offset for relocation entries after section layout.
* Implement function ld_reloc_join which joins a list of relocation
  entries in an input section to the relocation list in an output
  section.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2754 95820547-d848-0410-985e-9ae8fe0fa350
Config relocation entry type and size for amd64.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2755 95820547-d848-0410-985e-9ae8fe0fa350
Add support for generating output relocation sections in the "output"
module.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2756 95820547-d848-0410-985e-9ae8fe0fa350
Add function ld_input_alloc_internal_section_buffers which allocates
buffer for the internal input sections.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2757 95820547-d848-0410-985e-9ae8fe0fa350
Rewrite arch-specific function finalize_got_and_plt for amd64: the GOT
and PLT entries are now generated in the order of the sorted PLT
relocation list.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2758 95820547-d848-0410-985e-9ae8fe0fa350
* Check undefined symbols after first relocation scan is finished.
* Do not warn about undefined symbols if the linker outputs DSO.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2759 95820547-d848-0410-985e-9ae8fe0fa350
* Do not allocate internal buffer for dynamic relocation sections.
* Output more verbose info when a libelf API fails.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2760 95820547-d848-0410-985e-9ae8fe0fa350
Add support for R_X86_64_PLT32 and R_X86_64_GOTPCREL relocation types.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2761 95820547-d848-0410-985e-9ae8fe0fa350
* Add "is_pltrel" flag to mark an internal section as a PLT relocation
  section.
* Function ld_reloc_finalize_sections should let arch-specific code to
  finalize PLT relocation section.

git-svn-id: https://elftoolchain.svn.sourceforge.net/svnroot/elftoolchain/trunk@2762 95820547-d848-0410-985e-9ae8fe0fa350