2015-12-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc_init.c (sparc_init): Hook sparc_set_initial_registers_tid.
	* sparc_initreg.c: New file.
	* Makefile.am (sparc_SRCS): Added sparc_initreg.c.

2015-12-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc_corenote.c: Header comment typo fixed.
	(PRSTATUS_REGSET_ITEMS): Defined, so the PC can be fetched from
	core files.
	* Makefile.am (sparc_SRCS): Added sparc_cfi.c
	* sparc_cfi.c: New file.
	* sparc_init.c (sparc_init): Set eh->frame_nregs, eh->ra_offset
	and hook sparc_abi_cfi.

2015-10-21  Chih-Hung Hsieh  <chh@google.com>

	* ia64_retval.c (hfa_type): Move nested function 'hfa' to file scope.
	* aarch64_regs.c (aarch64_register_info): Move nested function 'regtype'
	to file scope.

2015-10-16  Mark Wielaard  <mjw@redhat.com>

	* ppc_symbol.c (ppc_check_special_symbol): Also allow _SDA_BASE_
	in .data section.

2015-10-05  Josh Stone  <jistone@redhat.com>

	* Makefile.am (libebl_%.so): Add AM_V_at and AM_V_CCLD silencers.

2015-10-06  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc_attrs.c: New file.
	* Makefile.am (sparc_SRCS): Added sparc_attrs.c
	* sparc_init.c (sparc_init): Hook sparc_check_object_attribute.

2015-10-02  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc_init.c (RELOC_TYPE_ID): Defined.
	* common-reloc.c (reloc_type_name): Apply target-specific
	relocation ID extractors if defined.
	(reloc_type_check): Likewise.
	(reloc_valid_use): Likewise.

2015-10-02  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc_reloc.def: Added relocation types WDISP10, JMP_IREL and
	IRELATIVE.

2015-09-22  Mark Wielaard  <mjw@redhat.com>

	* arm_attrs.c: Remove old-style function definitions.
	* linux-core-note.c: Likewise.
	* ppc_attrs.c: Likewise.

2015-09-04  Chih-Hung Hsieh  <chh@google.com>

	* aarch64_init.c (aarch64_init): Replace K&R function definition
	with ansi-C definitions.
	* alpha_init.c (alpha_init): Likewise.
	* arm_init.c (arm_init): Likewise.
	* i386_init.c (i386_init): Likewise.
	* ia64_init.c (ia64_init): Likewise.
	* ppc64_init.c (ppc64_init): Likewise.
	* ppc_init.c (ppc_init): Likewise.
	* s390_init.c (s390_init): Likewise.
	* sh_init.c (sh_init): Likewise.
	* sparc_init.c (sparc_init): Likewise.
	* tilegx_init.c (tilegx_init): Likewise.
	* x86_64_init.c (x86_64_init): Likewise.

2015-09-03  Mark Wielaard  <mjw@redhat.com>

	* sparc_regs.c (sparc_register_info): Use ebl->class not ebl->machine.

2015-06-26  Pino Toscano  <toscano.pino@tiscali.it>

	* i386_initreg.c: Reduce scope of some includes to match their usage.

2015-04-28  Mark Wielaard  <mjw@redhat.com>

	* aarch64_reloc.def: Drop "64" from TLS_DTPMOD64, TLS_DTPREL64 and
	TLS_TPREL64.

2015-04-01  H.J. Lu  <hjl.tools@gmail.com>

	* Makefile.am (x86_64_SRCS): Add x32_corenote.c.
	* linux-core-note.c (PR_REG): New.
	(PRPSINFO_UID_T): Likewise.
	(ALIGN_PRPSINFO_UID_T): Likewise.
	(TYPE_PRPSINFO_UID_T): Likewise.
	(PRPSINFO_GID_T): Likewise.
	(ALIGN_PRPSINFO_GID_T): Likewise.
	(TYPE_PRPSINFO_GID_T): Likewise.
	(pr_reg): Replace ULONG with PR_REG.
	(pr_uid): Replace UID_T with PRPSINFO_UID_T.
	(uid): Likewise.
	(pr_gid): Replace GID_T with PRPSINFO_GID_T.
	(gid): Likewise.
	* x32_corenote.c: New file.
	* x86_64_corenote.c (BITS): New.  Support x32.
	(BACKEND): Support x32.
	(ULONG): Likewise.
	(ALIGN_ULONG): Likewise.
	(TYPE_ULONG): Likewise.
	(PRPSINFO_UID_T): New.
	(ALIGN_PRPSINFO_UID_T): Likewise.
	(TYPE_PRPSINFO_UID_T): Likewise.
	(PRPSINFO_GID_T): Likewise.
	(ALIGN_PRPSINFO_GID_T): Likewise.
	(TYPE_PRPSINFO_GID_T): Likewise.
	(PR_REG): Likewise.
	(ALIGN_PR_REG): Likewise.
	* x86_64_init.c (x32_core_note): New.
	(x86_64_init): Set eh->core_note to x32_core_note for x32.

2015-03-23  Mark Wielaard  <mjw@redhat.com>

	* aarch64_symbol.c (aarch64_check_special_symbol): Accept
	_GLOBAL_OFFSET_TABLE_ pointing anywhere in .got.

2015-03-09  Mark Wielaard  <mjw@redhat.com>

	* aarch64_reloc.def (COPY): Add DYN.
	* arm_reloc.def (COPY): Likewise.
	* i386_reloc.def (COPY): Likewise.
	* ia64_reloc.def (COPY): Likewise.
	* ppc64_reloc.def (COPY): Likewise.
	* ppc_reloc.def (COPY): Likewise.
	* s390_reloc.def (COPY): Likewise.
	* sh_reloc.def (COPY): Likewise.
	* sparc_reloc.def (COPY): Likewise.
	* tilegx_reloc.def (COPY): Likewise.
	* x86_64_reloc.def (COPY): Likewise.

2015-02-23  Petr Machata  <pmachata@redhat.com>

	* arm_symbol.c (arm_symbol_type_name): New function.
	* arm_init.c (arm_init): Initialize the hook.

2014-12-30  Mark Wielaard  <mjw@redhat.com>

	* ppc_symbol.c (find_dyn_got): Check sh_entsize is not zero.

2014-12-18  Ulrich Drepper  <drepper@gmail.com>

	* Makefile.am: Suppress output of textrel_check command.

2014-11-22  Mark Wielaard  <mjw@redhat.com>

	* ppc64_symbol.c (ppc64_bss_plt_p): Remove ehdr argument.
	* ppc_symbol.c (find_dyn_got): Likewise. Use elf_getphdrnum.
	(ppc_check_special_symbol): Call find_dyn_got without ehdr.
	(ppc_bss_plt_p): Remove ehdr argument.

2014-11-17  Mark Wielaard  <mjw@redhat.com>

	* ppc64_init.c (ppc64_init): Check section name is not NULL.

2014-10-06  Mark Wielaard  <mjw@redhat.com>

	* libebl_CPU.h (dwarf_peel_type): Removed.
	(dwarf_peeled_die_type): Use libdw dwarf_peel_type.

2014-07-18  Kyle McMartin  <kyle@redhat.com>
	    Mark Wielaard  <mjw@redhat.com>

	* aarch64_initreg.c: Check HAVE_SYS_USER_REGS.
	(aarch64_set_initial_registers_tid): Use user_regs_struct and
	user_fpsimd_struct.
	* arm_initreg.c: Check HAVE_SYS_USER_REGS.
	(arm_set_initial_registers_tid): Use user_regs_struct in compat mode.

2014-07-04  Menanteau Guy  <menantea@linux.vnet.ibm.com>
	    Mark Wielaard  <mjw@redhat.com>

	* ppc64_init.c (ppc64_init): Hook check_st_other_bits.
	* ppc64_reloc.def: TLSGD, TLSLD, TOCSAVE, ADDR16_HIGH, ADDR16_HIGHA,
	TPREL16_HIGH, TPREL16_HIGHA, DTPREL16_HIGH, DTPREL16_HIGHA, JMP_IREL,
	IRELATIVE, REL16, REL16_LO, REL16_HI and REL16_HA.
	* ppc64_symbol.c (ppc64_dynamic_tag_name): Recognize DT_PPC64_OPT.
	(ppc64_dynamic_tag_check): Likewise.
	(ppc64_check_st_other_bits): New function.

2014-07-04  Mark Wielaard  <mjw@redhat.com>

	* aarch64_retval.c (aarch64_return_value_location): Handle
	DW_ATE_boolean.

2014-06-18  Mark Wielaard  <mjw@redhat.com>

	* libebl_CPU.h (dwarf_peel_type): Remove DW_TAG_mutable_type
	handling.

2014-06-17  Mark Wielaard  <mjw@redhat.com>

	* arm_init.c (arm_init): Set func_addr_mask.

2014-06-20  Petr Machata  <pmachata@redhat.com>

	* alpha_retval.c (alpha_return_value_location): Call
	dwarf_peeled_die_type instead of inlining equivalent code.
	* arm_retval.c (arm_return_value_location): Likewise.
	* i386_retval.c (i386_return_value_location): Likewise.
	* ia64_retval.c (ia64_return_value_location): Likewise.
	* ppc64_retval.c (ppc64_return_value_location): Likewise.
	* ppc_retval.c (ppc_return_value_location): Likewise.
	* s390_retval.c (s390_return_value_location): Likewise.
	* sh_retval.c (sh_return_value_location): Likewise.
	* sparc_retval.c (sparc_return_value_location): Likewise.
	* tilegx_retval.c (tilegx_return_value_location): Likewise.
	* x86_64_retval.c (x86_64_return_value_location): Likewise.

2014-05-19  Mark Wielaard  <mjw@redhat.com>

	* arm_init.c (arm_init): Hook check_reloc_target_type.
	* arm_symbol.c (arm_check_reloc_target_type): New function.
	* ia64_init.c (ia64_init): Hook check_reloc_target_type.
	* ia64_symbol.c (ia64_check_reloc_target_type): New function.

2014-04-22  Kurt Roeckx  <kurt@roeckx.be>

	* i386_initreg.c: Make Linux only.
	* x86_64_initreg.c: Make Linux only.

2014-04-13  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am: Remove libelf and libdw definitions when MUDFLAP
	is defined. Remove libmudflap from LINK line.

2014-04-09  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (aarch64_SRCS): Add aarch64_initreg.c.
	* aarch64_corenote.c (prstatus_regs): Mark pc_register.
	* aarch64_init.c: Assign frame_nregs. Hook set_initial_registers_tid.
	* aarch64_initreg: New file.

2014-03-28  Jean Pihet  <jean.pihet@linaro.org>

	* arm_initreg.c (arm_set_initial_registers_tid): Handle compat mode.
	ARM compatible code running on AARCH64.

2014-03-19  Mark Wielaard  <mjw@redhat.com>

	* aarch64_reloc.def: AARCH64_ABS32 and AARCH64_ABS64 are also valid
	in ET_REL.

2014-01-30  Petr Machata  <pmachata@redhat.com>

	* aarch64_regs.c (aarch64_register_info.regtype): Make this
	variadic printf-like function.  Call one vsnprintf instead of two
	snprintf's.
	(regtyper, regtypen): Drop.
	(aarch64_register_info): Adjust callers.

2014-01-26  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (arm_SRCS): Add arm_initreg.c.
	* arm_init.c (arm_init): Define frame_nregs and hook
	set_initial_registers_tid.
	* arm_initreg.c: New file.

2014-01-25  Mark Wielaard  <mjw@redhat.com>

	* arm_cfi.c (arm_abi_cfi): Restore SP (r13) from CFA.

2014-01-24  Mark Wielaard  <mjw@redhat.com>

	* arm_reloc.def: Update list.

2014-01-22  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (aarch64_regs_no_Wformat): Removed.
	* aarch64_regs.c (regtype): Add bool nr argument. snprintf arg
	when nr is true.
	(regtyper): New function.
	(regtypen): Likewise.
	(aarch64_register_info): Call either regtyper or regtypen not
	regtype directly.

2014-01-14  Mark Wielaard  <mjw@redhat.com>

	* aarch64_symbol.c (aarch64_check_special_symbol): Check shdr is
	not NULL before usage.

2014-01-04  Mark Wielaard  <mjw@redhat.com>

	* ppc64_symbol.c (ppc64_machine_flag_check): New function.
	* ppc64_init.c (ppc64_init): Hook machine_flag_check.

2014-01-03  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (aarch64_SRCS): Add aarch64_cfi.c.
	* aarch64_cfi.c: New file.
	* aarch64_init.c (aarch64_init): Hook abi_cfi.
	* aarch64_regs.c (aarch64_register_info): Set *prefix to "".

2013-12-19  Mark Wielaard  <mjw@redhat.com>

	* aarch64_init.c (aarch64_init): Hook check_special_symbol.
	* aarch64_symbol.c (aarch64_check_special_symbol): New function.

2013-12-18  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (ppc64_SRCS): Add ppc64_resolve_sym.c.
	* ppc64_resolve_sym.c: New file.
	* ppc64_init.c: Hook resolve_sym_value and find function descriptor
	table.

2013-12-18  Mark Wielaard  <mjw@redhat.com>

	* s390_initreg.c (s390_set_initial_registers_tid): Use union
	to avoid type-punning when assigning a double to a Dwarf_Word.

2013-12-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

	unwinder: s390 and s390x
	* Makefile.am (s390_SRCS): Add s390_initreg.c and s390_unwind.c.
	* s390_corenote.c (prstatus_regs): Set PC_REGISTER.  Reindent all the
	entries.
	* s390_init.c (s390_init): Initialize frame_nregs,
	set_initial_registers_tid, normalize_pc and unwind.
	* s390_initreg.c: New file.
	* s390_unwind.c: New file.

2013-12-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	unwinder: ppc and ppc64
	* Makefile.am (ppc_SRCS, ppc64_SRCS): Add ppc_initreg.c.
	* ppc64_init.c (ppc64_init): Initialize also frame_nregs,
	set_initial_registers_tid and dwarf_to_regno.
	* ppc_corenote.c (PRSTATUS_REGSET_ITEMS) <nip>: Set PC_REGISTER.
	* ppc_init.c (ppc64_init): Initialize also frame_nregs,
	set_initial_registers_tid and dwarf_to_regno.
	* ppc_initreg.c: New file.

2013-11-25  Petr Machata  <pmachata@redhat.com>

	* Makefile.am (modules): Add aarch64.
	(libebl_pic): Add libebl_aarch64_pic.a.
	(aarch64_SRCS): New variable.
	(libebl_aarch64_pic_a_SOURCES): Likewise.
	(am_libebl_aarch64_pic_a_OBJECTS): Likewise.
	(aarch64_regs_no_Wformat): Likewise.
	* aarch64_corenote.c, aarch64_init.c: New files.
	* aarch64_regs.c, aarch64_reloc.def: Likewise.
	* aarch64_retval.c, aarch64_symbol.c: Likewise.
	* libebl_CPU.h (dwarf_peel_type): New function.
	(dwarf_peeled_die_type): Likewise.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (i386_SRCS): Add i386_initreg.c.
	(x86_64_SRCS): Add x86_64_initreg.c.
	* i386_initreg.c: New file.
	* i386_init.c (i386_init): Initialize frame_nregs and
	set_initial_registers_tid.
	* x86_64_initreg.c: New file.
	* x86_64_init.c (x86_64_init): Initialize frame_nregs and
	set_initial_registers_tid.

2013-10-06  Mark Wielaard  <mjw@redhat.com>

	* ppc_cfi.c (ppc_abi_cfi): Use DW_CFA_val_offset for reg1, not
	DW_CFA_val_expression.

2013-08-29  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (arm_SRCS): Add arm_cfi.c.
	* arm_cfi.c: New file.
	* arm_init.c (arm_init): Initialize abi_cfi.

2013-08-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.am (ppc_SRCS, ppc64_SRCS): Add ppc_cfi.c.
	(s390_SRCS): Add s390_cfi.c.
	* ppc64_init.c (ppc64_init): Initialize abi_cfi.
	* ppc_cfi.c: New file.
	* ppc_init.c (ppc_init): Initialize abi_cfi.
	* s390_cfi.c: New file.
	* s390_init.c (s390_init): Initialize abi_cfi.

2013-08-28  Mark Wielaard  <mjw@redhat.com>

	* arm_regs.c (arm_register_info): Set *prefix to "".
	* ppc_regs.c (ppc_register_info): Likewise.
	* sh_regs.c (sh_register_info): Likewise.

2013-04-24  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.

2013-02-06  Mark Wielaard  <mjw@redhat.com>

	* libebl_CPU.h (DWARF_TAG_OR_RETURN): New macro.
	* backends/alpha_retval.c (alpha_return_value_location): Use new
	DWARF_TAG_OR_RETURN macro instead of dwarf_tag ().
	* backends/arm_retval.c (arm_return_value_location): Likewise.
	* backends/i386_retval.c (i386_return_value_location): Likewise.
	* backends/ia64_retval.c (hfa_type): Likewise.
	(ia64_return_value_location): Likewise.
	* backends/ppc64_retval.c (ppc64_return_value_location): Likewise.
	* backends/ppc_retval.c (ppc_return_value_location): Likewise.
	* backends/s390_retval.c (s390_return_value_location): Likewise.
	* backends/sh_retval.c (sh_return_value_location): Likewise.
	* backends/sparc_retval.c (sparc_return_value_location): Likewise.
	* backends/tilegx_retval.c (tilegx_return_value_location): Likewise.
	* backends/x86_64_retval.c (x86_64_return_value_location): Likewise.

2013-01-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Roland McGrath <roland@hack.frob.com>

	* Makefile.am (s390_SRCS): Add s390_corenote.c and s390x_corenote.c.
	* linux-core-note.c (ALIGN_PR_REG): New definitions.
	(struct EBLHOOK(prstatus)): Change field pr_reg to anonymous struct with
	ALIGN_PR_REG.
	(EXTRA_ITEMS): New macro.
	* s390_corenote.c: New file.
	* s390_init.c (s390x_core_note): New declaration.
	(s390_init): Install s390x_core_note and s390_core_note.
	* s390x_corenote.c: New file.

2013-01-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* arm_corenote.c (vfp_items): Remove zero COUNT initializer.

2012-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* linux-core-note.c (prstatus_items): Rename groups of sigpend and
	sighold to signal2 and signal3.

2012-09-24  Petr Machata  <pmachata@redhat.com>

	* arm_corenote.c (vfp_items, vfp_regs): New const variables.
	(EXTRA_NOTES): Use it for NT_ARM_VFP.
	* linux-core-note.c (EXTRA_REGSET_ITEMS): New macro.

2012-09-17  Petr Machata  <pmachata@redhat.com>

	* arm_corenote.c (FPREGSET_SIZE): Change to 116.

2012-08-22  Jeff Kenton  <jkenton@tilera.com>

	* Makefile.am (modules): Add tilegx.
	(libebl_pic): Add libebl_tilegx_pic.a.
	(tilegx_SRCS): New variable.
	(libebl_tilegx_pic_a_SOURCES): Likewise.
	(am_libebl_tilegx_pic_a_OBJECTS): Likewise.
	* tilegx_corenote.c: New file.
	* tilegx_regs.c: New file.
	* tilegx_reloc.def: New file.
	* tilegx_init.c: New file.
	* tilegx_retval.c: New file.
	* tilegx_symbol.c: New file.

2011-03-09  Mark Wielaard  <mjw@redhat.com>

	* alpha_init.c (alpha_init): Initialize check_st_other_bits hook.
	* alpha_symbol.c (alpha_check_st_other_bits): New function.

2011-03-09  Roland McGrath  <roland@redhat.com>

	* alpha_symbol.c (alpha_check_special_symbol): New function.
	* alpha_init.c (alpha_init): Initialize hook.

2010-11-08  Roland McGrath  <roland@redhat.com>

	* i386_retval.c (loc_intreg): Typo fix.
	Reported by Thorsten Glaser <tg@mirbsd.de>.

2010-04-10  Matt Fleming  <matt@console-pimps.org>

	* sh_corenote.c: New file.
	* sh_regs.c: New file.
	* sh_retval.c: New file.
	* sh_symbol.c (sh_machine_flag_check): New function.
	* Makefile.am (sh_SRCS): Add new files.
	* sh_init.c (sh_init): Add initializers.

2010-04-07  Roland McGrath  <roland@redhat.com>

	* arm_reloc.def: Accept PC24 and ABS32 in EXEC|DYN too.

2010-03-04  Ulrich Drepper  <drepper@redhat.com>

	* x86_64_reloc.def: Add entries for R_X86_64_SIZE32 and
	R_X86_64_SIZE64.

2010-02-18  Roland McGrath  <roland@redhat.com>

	* Makefile.am (libebl_%.so): Use multi-target pattern rule instead of
	intermediate dependency file for libebl_%.map, working around apparent
	make -j timing-sensitive bugs.

2010-02-15  Roland McGrath  <roland@redhat.com>

	* Makefile.am: Use config/eu.am for common stuff.

2010-01-05  Roland McGrath  <roland@redhat.com>

	* arm_retval.c (arm_return_value_location): Use dwarf_aggregate_size.
	* ia64_retval.c (ia64_return_value_location): Likewise.
	* ppc_retval.c (ppc_return_value_location): Likewise.
	* ppc64_retval.c (ppc64_return_value_location): Likewise.
	* sparc_retval.c (sparc_return_value_location): Likewise.

	* ppc64_retval.c (ppc64_return_value_location):
	Use vr2 for DW_TAG_array_type with DW_AT_GNU_vector.
	* ppc_retval.c (ppc_return_value_location): Likewise.

2010-01-04  Roland McGrath  <roland@redhat.com>

	* linux-core-note.c (vmcoreinfo_items): New static const variable.
	(EBLHOOK(core_note)): Update arguments for new protocol.
	Validate the name as "CORE" or "LINUX" for known n_type cases.
	Handle name "VMCOREINFO" n_type=0 with vmcoreinfo_items.
	* i386_corenote.c (EXTRA_NOTES): Update parameter usage.
	* x86_corenote.c (EXTRA_NOTES_IOPERM): Likewise.

2009-09-10  Mark Wielaard  <mjw@redhat.com>

	* sparc_retval.c: Fix license header.

2009-08-07  Roland McGrath  <roland@redhat.com>

	* x86_64_reloc.def: Add PC64, GOTOFF64, GOTPC32, GOTPC32_TLSDESC,
	TLSDESC_CALL, TLSDESC.

2009-07-08  Roland McGrath  <roland@redhat.com>

	* x86_64_cfi.c (x86_64_abi_cfi): New file.
	* Makefile.am (x86_64_SRCS): Add it.
	* x86_64_init.c (x86_64_init): Add initializer.

	* i386_cfi.c (i386_abi_cfi): New file.
	* Makefile.am (i386_SRCS): Add it.
	* i386_init.c (i386_init): Initialize abi_cfi hook.

2009-06-01  Ulrich Drepper  <drepper@redhat.com>

	* i386_reloc.def: Add IRELATIVE entry.
	* x86_64_reloc.def: Likewise.

2009-04-16  Roland McGrath  <roland@redhat.com>

	* arm_regs.c (arm_register_info): Handle VFP registers.

	* i386_corenote.c (EXTRA_NOTES): NT_PRXFPREG -> NT_PRXFPREG

2009-04-14  Roland McGrath  <roland@redhat.com>

	* arm_retval.c: New file.
	* arm_attrs.c: New file.
	* Makefile.am (arm_SRCS): Add them.
	* arm_symbol.c (arm_segment_type_name): New function.
	(arm_section_type_name): New function.
	(arm_machine_flag_check): New function.
	* arm_init.c (arm_init): Initialize those hooks.

	* arm_regs.c: New file.
	* arm_corenote.c: New file.
	* arm_auxv.c: New file.
	* Makefile.am (arm_SRCS): Add them.
	* arm_init.c (arm_init): Initialize core_note, register_info,
	and auxv_info hooks.

	* ia64_symbol.c (ia64_section_type_name): Remove "SHT_" prefixes.

2009-04-01  Roland McGrath  <roland@redhat.com>

	* sparc_reloc.def: Update table.
	Data from Dave Miller <davem@davemloft.net>.

2009-02-15  Roland McGrath  <roland@redhat.com>

	* ppc_attrs.c (ppc_check_object_attribute): Handle tag
	GNU_Power_ABI_Struct_Return.

2008-10-04  Ulrich Drepper  <drepper@redhat.com>

	* i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
	TLS_DESC.

2008-08-01  Roland McGrath  <roland@redhat.com>

	* x86_corenote.c: New file.
	* Makefile.am (noinst_HEADERS): Add it.
	* i386_corenote.c: Include it, use EXTRA_NOTES_IOPERM in EXTRA_NOTES.
	* x86_64_corenote.c: Likewise.

	* linux-core-note.c (prstatus_items): Use 'B' instead of 'b'
	for sigpend and sighold.

2008-07-04  Roland McGrath  <roland@redhat.com>

	* i386_syscall.c: New file.
	* x86_64_syscall.c: New file.
	* ppc_syscall.c: New file.
	* Makefile.am (i386_SRCS, x86_64_SRCS, ppc_SRCS, ppc64_SRCS): Add them.
	* i386_init.c (i386_init): Initialize syscall_abi hook.
	* x86_64_init.c (x86_64_init): Likewise.
	* ppc_init.c (ppc_init): Likewise.
	* ppc64_init.c (ppc64_init): Likewise.

	* ppc_corenote.c (PRSTATUS_REGSET_ITEMS): Add nip.
	Fix offset calculation for 64-bit case.

2008-04-04  Roland McGrath  <roland@redhat.com>

	* alpha_symbol.c (alpha_check_special_section): New function.
	* alpha_init.c (alpha_init): Initialize check_special_section hook.

2008-03-31  Roland McGrath  <roland@redhat.com>

	* sparc_symbol.c (sparc_symbol_type_name): New function.
	(sparc_dynamic_tag_name): New function.
	(sparc_dynamic_tag_check): New function.
	* sparc_init.c (sparc_init): Initialize those hooks.

	* sparc_symbol.c (sparc_check_special_section): New function.
	* sparc_init.c (sparc_init): Initialize check_special_section hook.

2008-02-20  Roland McGrath  <roland@redhat.com>

	* ppc_attrs.c: New file.
	* Makefile.am (ppc_SRCS, ppc64_SRCS): Add it.
	* ppc_init.c (ppc_init): Initialize check_object_attribute hook.

2008-02-14  Roland McGrath  <roland@redhat.com>

	* alpha_auxv.c: New file.
	* Makefile.am (alpha_SRCS): Add it.
	* alpha_init.c (alpha_init): Initialize auxv_info hook.

2008-02-08  Roland McGrath  <roland@redhat.com>

	* ppc_corenote.c (spe_regs): New const variable.
	(EXTRA_NOTES): Use it for NT_PPC_SPE.

2008-01-02  Roland McGrath  <roland@redhat.com>

	* i386_corenote.c (tls_items): New const table.
	(tls_info): New function, uses it.
	(EXTRA_NOTES): Use it to handle NT_386_TLS.

2008-01-08  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Add x86-64 disassembler.
	* x86_64_init.c (x86_64_init): Hook up disassembler.

2007-12-28  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Add x86 disassembler.
	* i386_init.c (i386_init): Hook up disassembler.

2007-12-15  Roland McGrath  <roland@redhat.com>

	* ppc_regs.c (ppc_register_info): Return "spefscr", not "spr512".

2007-10-18  Roland McGrath  <roland@redhat.com>

	* ppc_regs.c (ppc_register_info): Assign 67 to "vscr".
	Return "vector" and 32 bits for vscr and vrsave.
	* ppc_corenote.c (altivec_regs): New variable.
	(EXTRA_NOTES): New macro, handle NT_PPC_VMX.

	* linux-core-note.c (EXTRA_REGSET): New macro.
	Remove NT_PRXFPREG case.  Instead, use EXTRA_NOTES if defined.
	* i386_corenote.c (EXTRA_NOTES): Define it.

2007-10-09  Roland McGrath  <roland@redhat.com>

	* sparc_auxv.c: New file.
	* Makefile.am (sparc_SRCS): Add it.
	* sparc_init.c (sparc_init): Initialize auxv_info hook.

2007-10-08  Roland McGrath  <roland@redhat.com>

	* linux-core-note.c (TIMEVAL_FIELD): New macro.
	(prstatus_items): Use it.
	* sparc_corenote.c: New file.
	* sparc64_corenote.c: New file.
	* Makefile.am (sparc_SRCS): Add them.
	* sparc_init.c (sparc_init): Initialize core_note hook.

	* sparc_symbol.c (sparc_machine_flag_check): New function.
	* sparc_init.c (sparc_init): Use it.

2007-09-27  Roland McGrath  <roland@redhat.com>

	* alpha_retval.c: Use dwarf_attr_integrate and dwarf_hasattr_integrate.
	* i386_retval.c: Likewise.
	* ia64_retval.c: Likewise.
	* ppc64_retval.c: Likewise.
	* ppc_retval.c: Likewise.
	* s390_retval.c: Likewise.
	* sparc_retval.c: Likewise.
	* x86_64_retval.c: Likewise.

2007-10-31  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: More dependencies for the libebl_* libraries.

2007-08-23  Roland McGrath  <roland@redhat.com>

	* x86_64_regs.c (x86_64_register_info): Put %rflags in "integer" set.

2007-08-22  Roland McGrath  <roland@redhat.com>

	* linux-core-note.c (prstatus_items): Add .group initializers.
	(prpsinfo_items): Likewise.
	* x86_64_corenote.c (PRSTATUS_REGSET_ITEMS): Likewise.
	* i386_corenote.c (PRSTATUS_REGSET_ITEMS): Likewise.
	* ppc_corenote.c (PRSTATUS_REGSET_ITEMS): Likewise.

2007-08-20  Roland McGrath  <roland@redhat.com>

	* ppc_symbol.c (ppc_check_special_symbol): For _GLOBAL_OFFSET_TABLE_
	when DT_PPC_GOT is not found, anywhere in the section is valid.

2007-08-19  Roland McGrath  <roland@redhat.com>

	* i386_auxv.c: New file.
	* Makefile.am (i386_SRCS, x86_64_SRCS): Add it.
	* ppc_auxv.c: New file.
	* Makefile.am (ppc_SRCS, ppc64_SRCS): Add it.
	* i386_init.c (i386_init): Initialize auxv_info hook.
	* x86_64_init.c (x86_64_init): Likewise.
	* ppc_init.c (ppc_init): Likewise.
	* ppc64_init.c (ppc64_init): Likewise.

	* alpha_corenote.c: New file.
	* Makefile.am (alpha_SRCS): Add it.
	* alpha_init.c (alpha_init): Initialize core_note hook.

	* ppc_corenote.c: New file.
	* ppc64_corenote.c: New file.
	* Makefile.am (ppc_SRCS, ppc64_SRCS): Add them.
	* ppc_init.c (ppc_init): Initialize core_note hook.
	* ppc64_init.c (ppc64_init): Likewise.

	* linux-core-note.c: New file.
	* Makefile.am (noinst_HEADERS): Add it.
	* i386_corenote.c: Rewritten.
	* x86_64_corenote.c: Likewise.

2007-05-23  Roland McGrath  <roland@redhat.com>

	* alpha_regs.c (alpha_register_info): fp -> s6

2007-04-26  Roland McGrath  <roland@redhat.com>

	* alpha_symbol.c (alpha_machine_section_flag_check): New function.
	* alpha_init.c (alpha_init): Initialize hook.

	* alpha_regs.c: New file.
	* Makefile.am (alpha_SRCS): Add it.
	* alpha_init.c (alpha_init): Initialize register_info hook.

2007-04-22  Roland McGrath  <roland@redhat.com>

	* ppc_regs.c (ppc_register_info): Use some names instead of sprNNN:
	mq, xer, lr, ctr, dsisr, dar, dec, vrsave.
	Set *BITS to 64 for FPU registers.

	* i386_regs.c (i386_register_info): Set *BITS to 16 for fctrl, fstat.
	* x86_64_regs.c (x86_64_register_info): Likewise for fcw, fsw.

2007-04-01  Roland McGrath  <roland@redhat.com>

	* x86_64_regs.c (x86_64_register_info): Add more registers from newer
	ABI spec.

2007-01-11  Roland McGrath  <roland@redhat.com>

	* ia64_symbol.c (ia64_machine_section_flag_check): New function.
	* ia64_init.c (ia64_init): Use it.

	* ia64_symbol.c (ia64_section_type_name): Typo fix in string.

2006-10-09  Roland McGrath  <roland@redhat.com>

	* ia64_symbol.c (ia64_reloc_simple_type): Treat SECREL types as simple.

2006-08-29  Roland McGrath  <roland@redhat.com>

	* sparc_retval.c: New file.
	* Makefile.am (sparc_SRCS): Add it.
	* sparc_init.c (sparc_init): Initialize return_value_location hook.

2006-08-22  Roland McGrath  <roland@redhat.com>

	* i386_regs.c (i386_register_name): Renamed i386_register_info.
	Take new args, yield more info.
	* i386_init.c (i386_init): Update initializer.
	* ia64_regs.c (ia64_register_name): Likewise.
	* ia64_init.c (ia64_init): Likewise.
	* ppc_regs.c (ppc_register_name): Likewise.
	* ppc64_init.c (ppc64_init): Likewise.
	* ppc_init.c (ppc_init): Likewise.
	* s390_regs.c (s390_register_name): Likewise.
	* s390_init.c (s390_init): Likewise.
	* sparc_regs.c (sparc_register_name): Likewise.
	* sparc_init.c (sparc_init): Likewise.
	* x86_64_regs.c (x86_64_register_name): Likewise.
	* x86_64_init.c (x86_64_init): Likewise.

2006-08-08  Roland McGrath  <roland@redhat.com>

	* Makefile.am (%.os): Don't depend on %.o, since we don't actually
	need static object for anything here.  This rule is the only source of
	.deps/ files.

2006-06-23  Stepan Kasal  <skasal@redhat.com>

	* Makefile.am (PACKAGE_VERSION): Remove superfluous definition.

2006-08-03  Roland McGrath  <roland@redhat.com>

	* sparc_regs.c (sparc_register_name): List 32 FPU regs only for
	EM_SPARC.  EM_SPARC32PLUS also has 64.

2006-07-21  Roland McGrath  <roland@redhat.com>

	* i386_regs.c (i386_register_name): Fix return value when using stpcpy.
	* ppc_regs.c (ppc_register_name): Likewise.
	* s390_regs.c (s390_register_name): Likewise.

	* ia64_retval.c: New file.
	* Makefile.am (ia64_SRCS): Add it.
	* ia64_init.c (ia64_init): Install return_value_location hook.

	* ia64_regs.c: New file.
	* Makefile.am (ia64_SRCS): Add it.
	* ia64_init.c (ia64_init): Install register_name hook.

2006-07-05  Ulrich Drepper  <drepper@redhat.com>

	* alpha_init.c: Initialize sysvhash_entrysize.
	* s390_init.c: Likewise.

2006-07-04  Ulrich Drepper  <drepper@redhat.com>

	* common-reloc.c (relative_reloc_p): New function.
	(init_reloc): Hook it up.
	* ia64_reloc.def: Define NO_RELATIVE_RELOC.

2006-06-13  Roland McGrath  <roland@redhat.com>

	* ppc64_retval.c: Remove SVR4_STRUCT_RETURN braino.

2006-06-12  Ulrich Drepper  <drepper@redhat.com>

	* common-reloc.c (none_reloc_p): New function.
	(init_reloc): Hook it up.

2006-02-22  Roland McGrath  <roland@redhat.com>

	* ppc64_retval.c (SVR4_STRUCT_RETURN): New macro.
	(ppc64_return_value_location): Use registers for aggregate conditional
	on that.
	* ppc_retval.c (SVR4_STRUCT_RETURN): New macro.
	(ppc_return_value_location): Use registers for aggregate conditional
	on that.

2006-01-12  Roland McGrath  <roland@redhat.com>

	* s390_retval.c: New file.
	* Makefile.am (s390_SRCS): Add it.
	* s390_init.c (s390_init): Install return_value_location hook.

2006-01-11  Roland McGrath  <roland@redhat.com>

	* s390_regs.c: New file.
	* Makefile.am (s390_SRCS): Add it.
	* s390_init.c (s390_init): Install register_name hook.

	* s390_reloc.def: Update bits per
	Martin Schwidefsky <schwidefsky@de.ibm.com>.

2005-12-10  Ulrich Drepper

	* common-reloc.c (R_NAME): Generate string correctly.

2005-12-05  Roland McGrath  <roland@redhat.com>

	* i386_regs.c (i386_register_name): Use a table for the first 8 regs.
	* x86_64_regs.c (x86_64_register_name): Likewise.

2005-11-25  Roland McGrath  <roland@redhat.com>

	* i386_regs.c (i386_register_name): Return 0, not 1, for gaps.

	* i386_regs.c: New file.
	* ppc_regs.c: New file.
	* sparc_regs.c: New file.
	* x86_64_regs.c: New file.
	* Makefile.am
	(i386_SRCS, x86_64_SRCS, ppc_SRCS, ppc64_SRCS, sparc_SRCS): Add them.
	* i386_init.c: Initialize register_name hook.
	* ppc_init.c: Likewise.
	* ppc64_init.c: Likewise.
	* sparc_init.c: Likewise.
	* x86_64_init.c: Likewise.

2005-11-19  Roland McGrath  <roland@redhat.com>

	* ppc64_reloc.def: REL30 -> ADDR30.

2005-11-18  Roland McGrath  <roland@redhat.com>

	* alpha_init.c: Use HOOK macro.
	* arm_init.c: Likewise.
	* i386_init.c: Likewise.
	* ia64_init.c: Likewise.
	* ppc64_init.c: Likewise.
	* ppc_init.c: Likewise.
	* s390_init.c: Likewise.
	* sh_init.c: Likewise.
	* sparc_init.c: Likewise.
	* x86_64_init.c: Likewise.

2005-11-17  Roland McGrath  <roland@redhat.com>

	* Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
	(CLEANFILES): Add libebl_$(m).so.

	* ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>.
	* ppc64_reloc.def: Likewise.

2005-11-15  Roland McGrath  <roland@redhat.com>

	* Contents moved here from ../libebl.
