2013-04-30  Nick Clifton  <nickc@redhat.com>

	* ld.texinfo (SORT_BY_ALIGNMENT): Fix and clarify typo - sections
	are sorted by descending order of alignment.

2013-04-29  Nick Clifton  <nickc@redhat.com>

	* scripttempl/DWARF.sc: Add support for .debug_line.* and
	.debug_line_end.

2013-04-29  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>

	* emultempl/pe.em [cygwin]: Do not merge rdata with v2
	psuedo-relocs.

2013-04-28  Thomas Schwinge  <thomas@codesourcery.com>

	* scripttempl/armbpabi.sc: Replace "source" usage with ".".
	* scripttempl/avr.sc: Likewise.
	* scripttempl/elf.sc: Likewise.
	* scripttempl/elf32cr16.sc: Likewise.
	* scripttempl/elf32crx.sc: Likewise.
	* scripttempl/elf32msp430.sc: Likewise.
	* scripttempl/elf32msp430_3.sc: Likewise.
	* scripttempl/elf32sh-symbian.sc: Likewise.
	* scripttempl/elf64hppa.sc: Likewise.
	* scripttempl/elf_chaos.sc: Likewise.
	* scripttempl/elfd10v.sc: Likewise.
	* scripttempl/elfd30v.sc: Likewise.
	* scripttempl/elfi370.sc: Likewise.
	* scripttempl/elfm68hc11.sc: Likewise.
	* scripttempl/elfm68hc12.sc: Likewise.
	* scripttempl/elfxgate.sc: Likewise.
	* scripttempl/elfxtensa.sc: Likewise.
	* scripttempl/epiphany_4x4.sc: Likewise.
	* scripttempl/i386beos.sc: Likewise.
	* scripttempl/i386go32.sc: Likewise.
	* scripttempl/ia64vms.sc: Likewise.
	* scripttempl/ip2k.sc: Likewise.
	* scripttempl/iq2000.sc: Likewise.
	* scripttempl/mep.sc: Likewise.
	* scripttempl/mmo.sc: Likewise.
	* scripttempl/v850.sc: Likewise.
	* scripttempl/v850_rh850.sc: Likewise.
	* scripttempl/xstormy16.sc: Likewise.

2013-04-26  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* scripttempl/avr.sc: Add ALIGN directive after *(.progmem*).

2013-04-26  Alan Modra  <amodra@gmail.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Test
	unresolved_syms_in_shared_libs rather than !executable to
	determine whether to load DT_NEEDED libraries.

2013-04-25  Alan Modra  <amodra@gmail.com>

	* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32lppclinux.c.
	(eelf32lppclinux.c): New rule.
	* Makefile.in: Regenerate.
	* configure.tgt: Merge powerpc-linux and other powerpc-elf targets
	with corresponding little-endian targets.
	* emulparams/elf32lppc.sh: Update comment.
	* emulparams/elf32lppclinux.sh: New.

2013-04-24  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.tgt (targ_extra_emuls): Adds elf32_x86_64 for
	x86_64-*-elf*.
	(targ_extra_libpath): Likewise.
	(tdir_elf_i386): Replace x86_64 with i386 for x86_64-*-elf*.

2013-04-24  Yufeng Zhang  <yufeng.zhang@arm.com>

	* emulparams/aarch64elf.sh: Define ELFSIZE=64.
	* emulparams/aarch64linux.sh: Ditto.
	* emultempl/aarch64elf.em (aarch64_elf_before_allocation):
	Replace elf64 with elf${ELFSIZE}.
	(elf64_aarch64_add_stub_section): Likewise.
	(build_section_lists): Likewise.
	(gld${EMULATION_NAME}_after_allocation): Likewise.
	(gld${EMULATION_NAME}_finish): Likewise.
	(aarch64_elf_create_output_section_statements): Likewise.

2013-04-24  Nick Clifton  <nickc@redhat.com>

	PR ld/15389
	* scripttempl/avr.sc: Add .note.gnu.build-id section.

2013-04-22  Alan Modra  <amodra@gmail.com>

	* emultempl/ppc64elf.em (ppc_create_output_section_statements):
	Check return from ppc64_elf_init_stub_bfd.

2013-04-15  Nick Clifton  <nickc@redhat.com>

	* Makefile.am (ELF_DEPS): Add a dependency upon
	scripttempl/DWARF.sc.
	(ELF_GEN_DEPS): Likewise.
	(emmo.c): Likewise.
	* Makefile.in: Regenerate.

	* scripttempl/armbpabi.sc: Replace DWARF sections with an
	inclusion of DWARF.sc.
	* scripttempl/avr.sc: Likewise.
	* scripttempl/elf.sc: Likewise.
	* scripttempl/elf32cr16.sc: Likewise.
	* scripttempl/elf32crx.sc: Likewise.
	* scripttempl/elf32msp430.sc: Likewise.
	* scripttempl/elf32msp430_3.sc: Likewise.
	* scripttempl/elf32sh-symbian.sc: Likewise.
	* scripttempl/elf64hppa.sc: Likewise.
	* scripttempl/elf_chaos.sc: Likewise.
	* scripttempl/elfd10v.sc: Likewise.
	* scripttempl/elfd30v.sc: Likewise.
	* scripttempl/elfi370.sc: Likewise.
	* scripttempl/elfm68hc11.sc: Likewise.
	* scripttempl/elfm68hc12.sc: Likewise.
	* scripttempl/elfxgate.sc: Likewise.
	* scripttempl/elfxtensa.sc: Likewise.
	* scripttempl/epiphany_4x4.sc: Likewise.
	* scripttempl/i386beos.sc: Likewise.
	* scripttempl/i386go32.sc: Likewise.
	* scripttempl/ia64vms.sc: Likewise.
	* scripttempl/ip2k.sc: Likewise.
	* scripttempl/iq2000.sc: Likewise.
	* scripttempl/mep.sc: Likewise.
	* scripttempl/mmo.sc: Likewise.
	* scripttempl/v850.sc: Likewise.
	* scripttempl/v850_rh850.sc: Likewise.
	* scripttempl/xstormy16.sc: Likewise.
	* scripttempl/DWARF.sc: New.

2013-04-04  Alan Modra  <amodra@gmail.com>

	* ldlang.c (load_symbols): Report "error adding symbols" on
	bfd_link_add_symbols failure.
	* emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Likewise.
	* emultempl/sunos.em (gld${EMULATION_NAME}_after_open): Likewise.
	(gld${EMULATION_NAME}_try_needed): Likewise.

2013-03-27  Georg-Johann Lay  <gjl@gcc.gnu.org>

	PR ld/13812
	* scripttempl/avr.sc: Place trampolines before .progmem section.

2013-03-25  Kai Tietz  <ktietz@redhat.com>

	* ld.texinfo (--disable-runtime-pseudo-reloc): Adjust default.

2013-03-21  Michael Schewe  <michael.schewe@gmx.net>

	* ld.texinfo (H8/300): Add description of relaxation of
	mov @(disp:32,ERx) to mov @(disp:16,ERx).

2013-03-21  Kai Tietz  <ktietz@redhat.com>

	* pe-dll.c (process_def_file_and_drectve): Don't handle VC
	generated C++-symbols as stdcall/fastcall.

2013-03-18  Alan Modra  <amodra@gmail.com>

	* ld.texinfo (--as-needed): Update.

2013-03-14  Jakub Jelinek  <jakub@redhat.com>

	* emulparams/aarch64linux.sh (LIBPATH_SUFFIX): Set to 64 for
	aarch64linux* emulations.

2013-03-07  Alan Modra  <amodra@gmail.com>

	* ldfile.c (ldfile_open_command_file_1): Return after einfo
	to avoid warning.

2013-03-05  Corinna Vinschen  <vinschen@redhat.com>

	* configure.host: Add x86_64-*-cygwin* as valid host.
	* configure.tgt: Add x86_64-*-cygwin* as valid target.
	* emultempl/pep.em: Handle different requirements for Cygwin in terms
	of start addresses for executables and DLLs, based on memory model in
	http://cygwin.com/ml/cygwin-developers/2013-02/msg00027.html

2013-03-05  Alan Modra  <amodra@gmail.com>

	PR ld/15222
	* ldlang.c (lang_size_sections_1): When given an lma_region align
	LMA as per VMA only if lma_region is the same as region.

2013-02-27  Nick Clifton  <nickc@redhat.com>

	* scripttempl/elf32msp430.sc: Add placement of .data.* sections.
	Add alignment of .bss section.
	* scripttempl/elf32msp430_3.sc: Likewise.

2013-02-26  Nick Clifton  <nickc@redhat.com>

	PR ld/15188
	* ld.texinfo: Fix typos.

2013-02-21  Alan Modra  <amodra@gmail.com>

	* scripttempl/elf.sc (.init_array, .fini_array): Don't sort all
	.init_array/.fini_array input sections before .ctors/.dtors input
	sections.
	(CTORS_IN_INIT_ARRAY, DTORS_IN_INIT_ARRAY): Adjust to suit.

2013-02-21  Alan Modra  <amodra@gmail.com>

	* emultempl/elf32.em (write_build_id, setup_build_id): Adjust
	for elf_tdata changes.

2013-02-21  Alan Modra  <amodra@gmail.com>

	* emultempl/elf-generic.em: Use newly defined elf_obj_tdata
	accessor macros.

2013-02-20  Alan Modra  <amodra@gmail.com>

	* Makefile.am: Use $(ELF_DEPS) on a number of eelf*.c rules.
	* Makefile.in: Regenerate.

2013-02-19  Sandra Loosemore  <sandra@codesourcery.com>

	PR ld/15146
	* plugin.c (plugin_notice): Add null check before dereferencing
	pointer.

2013-02-19  Alan Modra  <amodra@gmail.com>

	* emultempl/elf32.em (emit_note_gnu_build_id): New static var.
	Replace all info->emit_note_gnu_build_id refs.
	(id_note_section_size): Rename from
	gld${EMULATION_NAME}_id_note_section_size.
	(struct build_id_info): Delete.
	(write_build_id): Rename from
	gld${EMULATION_NAME}_write_build_id_section.
	Update elf_tdata usage.  Style, formatting.
	(setup_build_id): New function.
	(gld${EMULATION_NAME}_after_open): Use setup_build_id.

2013-02-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/15146
	* plugin.c (plugin_notice): Replace the undefined dummy bfd with
	the real one.

2013-02-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/15141
	* plugin.c (plugin_notice): Also trace symbol from the IR bfd.

2013-02-15  Kai Tietz  <ktietz@redhat.com>

	* scripttempl/pep.sc (.xdata): Merge .xdata* into .xdata section.
	(.pdata): Merge .pdata* into .pdata section.

2013-02-11  Alan Modra  <amodra@gmail.com>

	* ldlang.c (get_init_priority): Comment typo.
	(lang_finish): Free link_info.hash and lang_definedness_table.
	(lang_end): Delete lang_definedness_table comment.

2013-02-11  Alan Modra  <amodra@gmail.com>

	PR ld/15130
	* ld.texinfo (-rpath-link): Typo fix.

2013-02-08  Markos Chandras  <markos.chandras@imgtec.com>

	* emultempl/metagelf.em (build_section_lists): Use sec_info_type
	rather than userdata->flags.just_syms.

2013-02-06  Sandra Loosemore  <sandra@codesourcery.com>
	    Andrew Jenner <andrew@codesourcery.com>

	Based on patches from Altera Corporation.

	* Makefile.am (enios2elf.c): New rule.
	* Makefile.in: Regenerated.
	* configure.tgt: Add case for nios2*-*-*.
	* emulparams/nios2elf.sh: New file.
	* NEWS: Note Altera Nios II support.

2013-02-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* emultempl/avrelf.em (avr_elf_before_parse): New function.
	(LDEMUL_BEFORE_PARSE): Define.

2013-02-06  Alan Modra  <amodra@gmail.com>

	PR ld/15096
	* emultempl/elf32.em: Revert 2013-02-04, 2013-01-22 and 2013-01-21.
	* emultempl/alphaelf.em: Revert 2013-02-04.
	* emultempl/cr16elf.em: Likewise.
	* emultempl/crxelf.em: Likewise.
	* emultempl/hppaelf.em: Likewise.
	* emultempl/ia64elf.em: Likewise.
	* emultempl/mipself.em: Likewise.
	* NEWS: Revert 2013-01-21.

2013-02-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/15096
	* emultempl/alphaelf.em (alpha_after_parse): Call
	gld${EMULATION_NAME}_after_parse instead of after_parse_default.
	* emultempl/cr16elf.em (cr16elf_after_parse): Likewise.
	* emultempl/crxelf.em (crxelf_after_parse): Likewise.
	* emultempl/hppaelf.em (hppaelf_after_parse): Likewise.
	* emultempl/mipself.em (mips_after_parse): Likewise.

	* emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Renamed
	to ...
	(gld_${EMULATION_NAME}_after_parse): This.  Call
	gld${EMULATION_NAME}_after_parse instead of after_parse_default.
	(LDEMUL_AFTER_PARSE): Set to gld_${EMULATION_NAME}_after_parse.

	* emultempl/elf32.em (new_dtags_set): New variable.
	(gld${EMULATION_NAME}_before_parse): Don't set link_info.new_dtags
	here.
	(gld${EMULATION_NAME}_after_parse): New function.
	(ld_${EMULATION_NAME}_emulation): Replace after_parse_default'
	with gld${EMULATION_NAME}_after_parse.
	(gld${EMULATION_NAME}_handle_option): Set new_dtags_set to TRUE
	when setting link_info.new_dtags.

2013-01-25  Kai Tietz  <ktietz@redhat.com>

	* deffilep.y (def_image_name): Adjust type of base-address
	argument.
	(%union): Add new type bfd_vma as vma.
	(VMA):  New rule.
	(opt_base): Use VMA instead of NUMBER rule to evaluate value.
	(def_file_print): Use bfd's fprintf_vma to output base-address.

2013-01-24  Nick Clifton  <nickc@redhat.com>

	* NEWS: Mention support for V850E3V5 architecture.

2013-01-23  Martin Koegler  <martin.koegler@chello.at>

	PR ld/15041
	* scripttempl/pep.sc (.pdata): Only accept .pdata sections.
	(.xdata): Similarly.
	(.debug_frame): Similarly.

2013-01-23  Georg-Johann Lay  <avr@gjlay.de>

	PR ld/15037
	* scripttempl/avr.sc (.eeprom): Keep it.

2013-01-23  Leif Ekblad  <leif@rdos.net>

	* Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64rdos.c.
	(eelf64rdos.c): New rule.
	* emulparams/elf64rdos.sh: New file.
	* configure.tgt (x86_64-*-rdos*): Use above.
	* Makefile.in: Regenerate.

2013-01-22  Roland McGrath  <mcgrathr@google.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
	new_dtags to TRUE for *-*-nacl* targets.

2013-01-21  Mike Frysinger  <vapier@gentoo.org>

	* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
	link_info.new_dtags to TRUE for linux/gnu targets.
	* NEWS: Mention new dtags default.

2013-01-19  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (HOSTING_SCRT0): New.

	* configure.host (HOSTING_SCRT0): New.  Used for PIE.

	* configure.in (HOSTING_SCRT0): New AC_SUBST.

	* Makefile.in: Regenerated.
	* configure: Likewise.

2013-01-18  Mike Frysinger  <vapier@gentoo.org>

	* NEWS: Mention change in behavior with --enable-new-dtags.
	* ld.texinfo (Options): Clarify --enable-new-dtags behavior.

2013-01-14  Leif Ekblad <leif@rdos.net>
	    Alan Modra  <amodra@gmail.com>

	* ld.texinfo (-Tldata-segment): Describe.
	* ldlex.h (OPTION_TLDATA_SEGMENT): New enum value.
	* lexsup.c (ld_options): Add -Tldata-segment.
	(parse_args): Handle OPTION_TLDATA_SEGMENT.
	* scripttempl/elf.sc: Support LARGE_DATA_ADDR.

2013-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	* deffilep.y: Remove trailing white spaces.
	* elf-hints-local.h: Likewise.
	* ldexp.c: Likewise.
	* ldlang.h: Likewise.
	* ldmisc.c: Likewise.
	* ldwrite.c: Likewise.
	* pe-dll.c: Likewise.
	* emulparams/criself.sh: Likewise.
	* emulparams/crislinux.sh: Likewise.
	* emulparams/elf32_tic6x_le.sh: Likewise.
	* emulparams/elf32bmipn32-defs.sh: Likewise.
	* emulparams/elf32mb_linux.sh: Likewise.
	* emulparams/elf32mep.sh: Likewise.
	* emulparams/elf32microblaze.sh: Likewise.
	* emulparams/elf32ppc.sh: Likewise.
	* emulparams/elf64_s390.sh: Likewise.
	* emulparams/elf64alpha.sh: Likewise.
	* emulparams/elf_s390.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emulparams/tic80coff.sh: Likewise.
	* emultempl/aix.em: Likewise.
	* emultempl/avrelf.em: Likewise.
	* emultempl/cr16elf.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/pep.em: Likewise.
	* emultempl/spuelf.em: Likewise.
	* emultempl/tic6xdsbt.em: Likewise.

2013-01-10  Will Newton <will.newton@imgtec.com>

	* Makefile.am: Add Meta.
	* Makefile.in: Regenerate.
	* configure.tgt: Add Meta.
	* emulparams/elf32metag.sh: New file.
	* emultempl/metagelf.em: New file.

2013-01-09  Alan Modra  <amodra@gmail.com>

	* emulparams/elf_x86_64.sh (LARGE_BSS_AFTER_BSS): Define.
	* emulparams/elf32_x86_64.sh: Likewise.
	* emulparams/elf_k1om.sh: Likewise.
	* emulparams/elf_l1om.sh: Likewise.
	* scripttempl/elf.sc (LARGE_BSS): Define rather than appending to
	OTHER_BSS_SECTIONS.  Substitute in script.

2013-01-08  Leif Ekblad  <leif@rdos.net>

	* scripttempl/elf.sc (RODATA_ADDR): Typo fix.

2013-01-08  Alan Modra  <amodra@gmail.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_check_ld_so_conf): Replace
	"name" param with a bfd_link_needed_list pointer.  Update caller.
	(gld${EMULATION_NAME}_check_ld_elf_hints): Likewise.

2013-01-08  Alan Modra  <amodra@gmail.com>

	* Makefile.am (ALL_EMULATION_SOURCES): Correct eavrxmega entries.
	* Makefile.in: Regenerate.

2013-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	* lexsup.c (ld_options): Add fuse-ld= for GCC linker option
	compatibility.

2013-01-07  Patrice Dumas  <pertusus@free.fr>

	* ld.texinfo: Replace @ with @@ when it is part of the text.
	Correct ordering of M68HC11 entry.

2013-01-04  Juergen Urban <JuergenUrban@gmx.de>

	* configure.tgt: Support ELF files for Sony Playstation 2 (for
	ps2dev and ps2sdk).
	* emulparams/elf32lr5900n32.sh: Create linker script for Sony
	Playstation 2 ELF files using MIPS ABI n32.
	* emulparams/elf32lr5900.sh: Create linker script for Sony
	Playstation 2 ELF files using MIPS ABI o32.
	* Makefile.am: Add linker scripts for Sony Playstation 2 ELF
	files.

2013-01-02  H.J. Lu  <hongjiu.lu@intel.com>

	* ldver.c (ldversion): Update copyright year to 2013.

For older changes see ChangeLog-2012

Copyright (C) 2013 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
