2017-05-02  Release Manager

	* GCC 7.1.0 released.

2017-04-04  Jonathan Wakely  <jwakely@redhat.com>

	* ansidecl.h (ATTRIBUTE_PACKED): Fix typo in comment.

2017-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR debug/77589
	* dwarf2.def (DW_OP_GNU_variable_value): New opcode.

2017-01-30  Alexandre Oliva <aoliva@redhat.com>

	Introduce C++ support in libcc1.
	* gcc-c-fe.def (int_type_v0): Rename from...
	(int_type): ... this.  Introduce new version.
	(float_type_v0): Rename from...
	(float_type): ... this.  Introduce new version.
	(char_type): New.
	* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
	(gcc_type_array): Move...
	* gcc-interface.h: ... here.
	* gcc-cp-fe.def: New.
	* gcc-cp-interface.h: New.

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

	* gcc-interface.h (enum gcc_base_api_version): Update comment
	for GCC_FE_VERSION_1.
	(struct gcc_base_vtable): Rename set_arguments to
	set_arguments_v0.  Add set_arguments, set_triplet_regexp and
	set_driver_filename.

	* gcc-interface.h (enum gcc_base_api_version): Add comment to
	GCC_FE_VERSION_1.
	(struct gcc_base_vtable): Rename compile to compile_v0.
	Update comment for compile.  New methods set_verbose and
	compile.

	* gcc-interface.h (enum gcc_base_api_version): Add
	GCC_FE_VERSION_1.

2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
	    Martin Jambor  <mjambor@suse.cz>

	* hsa.h: Moved here from libgomp/plugin/hsa.h.

2017-01-04  Richard Earnshaw  <rearnsha@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* dwarf2.def (DW_OP_AARCH64_operation): Reserve the number 0xea.
	(DW_CFA_GNU_window_save): Comments the multiplexing on AArch64.

2017-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2016-12-21  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.def (DW_FORM_ref_sup): Renamed to ...
	(DW_FORM_ref_sup4): ... this.  New form.
	(DW_FORM_ref_sup8): New form.

2016-11-03  David Tolnay <dtolnay@gmail.com>
	    Mark Wielaard  <mark@klomp.org>

	* demangle.h (DMGL_RUST): New macro.
	(DMGL_STYLE_MASK): Add DMGL_RUST.
	(demangling_styles): Add dlang_rust.
	(RUST_DEMANGLING_STYLE_STRING): New macro.
	(RUST_DEMANGLING): New macro.
	(rust_demangle): New prototype.
	(rust_is_mangled): Likewise.
	(rust_demangle_sym): Likewise.

2016-11-07  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_NOEXCEPT, DEMANGLE_COMPONENT_THROW_SPEC.

2016-10-17  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (enum dwarf_calling_convention): Add new DWARF5
	calling convention codes.
	(enum dwarf_line_number_content_type): New.
	(enum dwarf_location_list_entry_type): Add DWARF5 DW_LLE_*
	codes.
	(enum dwarf_source_language): Add new DWARF5 DW_LANG_* codes.
	(enum dwarf_macro_record_type): Add DWARF5 DW_MACRO_* codes.
	(enum dwarf_name_index_attribute): New.
	(enum dwarf_range_list_entry): New.
	(enum dwarf_unit_type): New.
	* dwarf2.def: Add new DWARF5 DW_TAG_*, DW_FORM_*, DW_AT_*,
	DW_OP_* and DW_ATE_* entries.

2016-10-14  Pedro Alves  <palves@redhat.com>

	* ansidecl.h [__cplusplus >= 201103 && GCC_VERSION < 4007] (FINAL,
	OVERRIDE): Define as empty.
	[__cplusplus < 201103 && GCC_VERSION < 4007] (FINAL): Define as
	__final.
	[__cplusplus < 201103 && GCC_VERSION >= 4007] (OVERRIDE): Define as
	empty.

2016-10-14  Pedro Alves  <palves@redhat.com>

	* ansidecl.h (GCC_FINAL): Delete.
	(OVERRIDE, FINAL): New, moved from gcc/coretypes.h.

2016-08-15  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.def (DW_AT_string_length_bit_size,
	DW_AT_string_length_byte_size): New attributes.

2016-08-12  Alexandre Oliva <aoliva@redhat.com>

	PR debug/63240
	* dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New.
	* dwarf2.h (enum dwarf_defaulted_attribute): New.

2016-07-29  Aldy Hernandez  <aldyh@redhat.com>

	* libiberty.h (MAX_ALLOCA_SIZE): New macro.

2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>

	* gomp-constants.h (GOMP_VERSION): Increment to 1, add comment to
	describe the need for incrementing this macro whenever the plugin
	interface is modified.

2016-04-29  Tom Tromey  <tom@tromey.com>

	* dwarf2.h (enum dwarf_source_language) <DW_LANG_Rust,
	DW_LANG_Rust_old>: New constants.

2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>

	* longlong.h (umul_ppmm): Remove SHMEDIA checks.
	(__umulsidi3, count_leading_zeros): Remove SHMEDIA implementations.

2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

	* longlong.h (add_ssaaaa): Replace obsolete 'J' constraint with
	'Cal' constraint.
	(sub_ddmmss): Likewise.

2016-03-17  Thomas Schwinge  <thomas@codesourcery.com>

	* gomp-constants.h (enum gomp_map_kind): Rename
	GOMP_MAP_FORCE_DEALLOC to GOMP_MAP_DELETE.  Adjust all users.

2016-03-03  Than McIntosh <thanm@google.com>

	* plugin-api.h: Add new hooks to the plugin transfer vector to
	to support querying section alignment and section size.
	(ld_plugin_get_input_section_alignment): New hook.
	(ld_plugin_get_input_section_size): New hook.
	(ld_plugin_tag): Add LDPT_GET_INPUT_SECTION_ALIGNMENT
	and LDPT_GET_INPUT_SECTION_SIZE.
	(ld_plugin_tv): Add tv_get_input_section_alignment and
	tv_get_input_section_size.

2016-03-03  Evgenii Stepanov  <eugenis@google.com>

	* plugin-api.h (enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V3.

2016-01-19  Martin Jambor  <mjambor@suse.cz>

	* gomp-constants.h (GOMP_DEVICE_HSA): New macro.
	(GOMP_VERSION_HSA): Likewise.
	(GOMP_TARGET_ARG_DEVICE_MASK): Likewise.
	(GOMP_TARGET_ARG_DEVICE_ALL): Likewise.
	(GOMP_TARGET_ARG_SUBSEQUENT_PARAM): Likewise.
	(GOMP_TARGET_ARG_ID_MASK): Likewise.
	(GOMP_TARGET_ARG_NUM_TEAMS): Likewise.
	(GOMP_TARGET_ARG_THREAD_LIMIT): Likewise.
	(GOMP_TARGET_ARG_VALUE_SHIFT): Likewise.
	(GOMP_TARGET_ARG_HSA_KERNEL_ATTRIBUTES): Likewise.

2016-01-07  Mike Frysinger  <vapier@gentoo.org>

	* longlong.h: Change !__SHMEDIA__ to
	(!defined (__SHMEDIA__) || !__SHMEDIA__).
	Change __SHMEDIA__ to defined (__SHMEDIA__) && __SHMEDIA__.

2016-01-05  Mike Frysinger  <vapier@gentoo.org>

	* libiberty.h (dupargv): Change arg to char * const *.
	(writeargv, countargv): Likewise.

2015-11-27  Pedro Alves  <palves@redhat.com>

	PR other/61321
	PR other/61233
	* demangle.h (enum demangle_component_type)
	<DEMANGLE_COMPONENT_CONVERSION>: New value.

2015-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
	__sparc__]: Define.

2015-11-12  James Norris  <jnorris@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* gomp-constants.h (enum gomp_map_kind): Add GOMP_MAP_DEVICE_RESIDENT
	and GOMP_MAP_LINK.

2015-11-09  Alan Modra  <amodra@gmail.com>

	PR gdb/17133
	* obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE.

2015-11-09  Alan Modra  <amodra@gmail.com>

	PR gdb/17133
	* obstack.h: Import current gnulib file.

2015-11-05  Jakub Jelinek  <jakub@redhat.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
	(GOMP_MAP_FLAG_ALWAYS): Remove.
	(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
	GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
	GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
	Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
	(GOMP_MAP_ALWAYS_P): Define.
	(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.

2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Andrew Stubbs  <ams@codesourcery.com>
	    Rich Felker <dalias@libc.org>

	* longlong.h (udiv_qrnnd): Add FDPIC compatible version for SH.

2015-10-18  Roland McGrath  <roland@gnu.org>

	PR other/63758
	* environ.h: New file.

2015-10-13  Jakub Jelinek  <jakub@redhat.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* gomp-constants.h (GOMP_MAP_FLAG_ALWAYS): Define.
	(enum gomp_map_kind): Add GOMP_MAP_FIRSTPRIVATE,
	GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_USE_DEVICE_PTR,
	GOMP_MAP_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_ALWAYS_TO,
	GOMP_MAP_ALWAYS_FROM, GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT,
	GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_DELETE,
	GOMP_MAP_RELEASE, GOMP_MAP_FIRSTPRIVATE_POINTER.
	(GOMP_MAP_ALWAYS_TO_P, GOMP_MAP_ALWAYS_FROM_P): Define.
	(GOMP_TASK_FLAG_UNTIED, GOMP_TASK_FLAG_FINAL, GOMP_TASK_FLAG_MERGEABLE,
	GOMP_TASK_FLAG_DEPEND, GOMP_TASK_FLAG_PRIORITY, GOMP_TASK_FLAG_UP,
	GOMP_TASK_FLAG_GRAINSIZE, GOMP_TASK_FLAG_IF, GOMP_TASK_FLAG_NOGROUP,
	GOMP_TARGET_FLAG_NOWAIT, GOMP_TARGET_FLAG_EXIT_DATA,
	GOMP_TARGET_FLAG_UPDATE): Define.

2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>

	* gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
	(GOMP_DIM_GANG, GOMP_DIM_WORKER, GOMP_DIM_VECTOR, GOMP_DIM_MAX,
	GOMP_DIM_MASK): New.
	(GOMP_LAUNCH_DIM, GOMP_LAUNCH_ASYNC, GOMP_LAUNCH_WAIT): New.
	(GOMP_LAUNCH_CODE_SHIFT, GOMP_LAUNCH_DEVICE_SHIFT,
	GOMP_LAUNCH_OP_SHIFT): New.
	(GOMP_LAUNCH_PACK, GOMP_LAUNCH_CODE, GOMP_LAUNCH_DEVICE,
	GOMP_LAUNCH_OP): New.
	(GOMP_LAUNCH_OP_MAX): New.

2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>

	* gomp-constants.h (GOMP_VERSION, GOMP_VERSION_NVIDIA_PTX,
	GOMP_VERSION_INTEL_MIC): New.
	(GOMP_VERSION_PACK, GOMP_VERSION_LIB, GOMP_VERSION_DEV): New.

2015-08-14  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2.def (DW_AT_GNU_bias): New attribute.

2015-08-14  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
	attributes.

2015-08-11  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* ansidecl.h (GCC_FINAL): New macro.

2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>

	* gomp-constants.c (GOMP_DEVICE_HOST_NONSHM): Remove.

2015-05-22  Yunlian Jiang  <yunlian@google.com>

	* libiberty.h (asprintf): Don't declare if HAVE_DECL_ASPRINTF is
	not defined.

2015-03-19  Richard Biener  <rguenther@suse.de>

	* partition.h (struct partition_elem): Re-order elements to
	avoid padding.

2015-03-02  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR target/65261
	* ansidecl.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.

2015-02-19  Pedro Alves  <palves@redhat.com>

	* floatformat.h [__cplusplus]: Wrap in extern "C".

2015-02-04  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Fortran03
	and DW_LANG_Fortran08.

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* gomp-constants.h: New file.

2014-12-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* libiberty.h: Merge Copyright year update from Binutils.

2014-12-24  Uros Bizjak  <ubizjak@gmail.com>
	    Ben Elliston  <bje@au.ibm.com>
	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* libiberty.h (xasprintf): Declare.

2014-12-11  Uros Bizjak  <ubizjak@gmail.com>
            Ben Elliston  <bje@au.ibm.com>
            Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* libiberty.h (xvasprintf): Declare.

2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>

	* hashtab.h, splay-tree.h: Remove GTY markers.

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

	PR debug/60782
	* dwarf2.def: Add DWARFv5 DW_TAG_atomic_type.

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

	* dwarf2.h: Add DW_LANG_C_plus_plus_11, DW_LANG_C11 and
	DW_LANG_C_plus_plus_14.

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

	* dwarf2.def (DW_AT_noreturn): New DWARF5 attribute.

2014-11-14  Shinichiro Hamaji  <shinichiro.hamaji@gmail.com>

	* dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)
	(DW_AT_APPLE_isa, DW_AT_APPLE_block)
	(DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class)
	(DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name)
	(DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter)
	(DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type)
	(DW_AT_APPLE_property): New macros.

2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR driver/36312
	* filenames.h: Add prototype for canonical_filename_eq.

2014-11-11  David Malcolm  <dmalcolm@redhat.com>

	* ChangeLog.jit: New.

2014-10-28  Richard Henderson  <rth@redhat.com>

	* longlong.h [__alpha] (umul_ppmm): Disable for c++.

2014-10-28  Yury Gribov  <y.gribov@samsung.com>

	* libiberty.h (strtol, strtoul, strtoll, strtoull): New prototypes.

2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
	    Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gcc-c-fe.def: New file.
	* gcc-c-interface.h: New file.
	* gcc-interface.h: New file.

2014-10-15  David Malcolm  <dmalcolm@redhat.com>

	* libiberty.h (choose_tmpdir): New prototype.

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

	PR debug/63239
	* dwarf2.def (DW_AT_GNU_deleted): New attribute.

2014-09-26  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* libiberty.h (PEX_STDOUT_APPEND): New flag.
	(PEX_STDERR_APPEND): Likewise.

2014-09-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* demangle.h (DMGL_DLANG): New macro.
	(DMGL_STYLE_MASK): Add DMGL_DLANG.
	(demangling_styles): Add dlang_demangling.
	(DLANG_DEMANGLING_STYLE_STRING): New macro.
	(DLANG_DEMANGLING): New macro.
	(dlang_demangle): New prototype.

2014-09-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* longlong.h: Add __udiv_w_sdiv prototype.

2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>

	PR lto/61334
	* libiberty.h [defined (HAVE_DECL_STRNLEN) &&
	!HAVE_DECL_STRNLEN] (strnlen): New prototype.

2014-05-21  John Marino  <gnugcc@marino.st>

	* liberty.h: Use basename function on DragonFly.

2014-05-01  Steve Ellcey  <sellcey@mips.com>

	* include/longlong.h: Use 'defined()' to check __mips16.

2014-04-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* longlong.h (__i386__): Remove W_TYPE_SIZE==64 handling.

2014-04-22  Yufeng Zhang  <yufeng.zhang@arm.com>

	* longlong.h: Merge from glibc.

2014-01-21  Tom Tromey  <tromey@redhat.com>

	* ansidecl.h (ANSI_PROTOTYPES, PTRCONST, LONG_DOUBLE, PARAMS)
	(VPARAMS, VA_START, VA_OPEN, VA_CLOSE, VA_FIXEDARG, CONST)
	(VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID, AND, DOTS)
	(NOARGS): Don't define.
	* libiberty.h (expandargv, writeargv): Don't use PARAMS.

2013-12-23  Bill Maddox  <maddox@google.com>

	* demangle.h (enum gnu_v3_ctor_kinds):
	Added literal gnu_v3_unified_ctor.
	(enum gnu_v3_ctor_kinds):
	Added literal gnu_v3_unified_dtor.

2013-12-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* longlong.h: New file.

2013-10-29  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/58689
	* ansidecl.h (ATTRIBUTE_RETURNS_NONNULL): New macro.
	* libiberty.h (basename, lbasename, dos_lbasename, unix_lbasename,
	concat_copy): Mark with attributes nonnull(1) and returns_nonnull.
	(concat, reconcat, concat_copy2, choose_temp_base, xstrerror,
	xmalloc, xrealloc, xcalloc, xstrdup, xstrndup, xmemdup, pex_init):
	Mark with attribute returns_nonnull.

2013-10-22  Sterling Augustine  <saugustine@google.com>

	* gdb/gdb-index.h: Merge from gdb tree.

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

	* floatformat.h (floatformat_ibm_long_double): Delete.
	(floatformat_ibm_long_double_big): Declare.
	(floatformat_ibm_long_double_little): Declare.

2013-08-19  Dehao Chen  <dehao@google.com>

	* dwarf2.def (DW_AT_GNU_discriminator): New attribute.

2013-08-02  Caroline Tice  <cmtice@google.com>

	* vtv-change-permission.h: New file.

2013-04-03  Jason Merrill  <jason@redhat.com>

	Demangle C++11 ref-qualifier.
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_REFERENCE_THIS,
	DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS.

2013-03-01  Cary Coutant  <ccoutant@google.com>

	* dwarf2.h (enum dwarf_sect): New enum type.

2013-02-11  Sriraman Tallam  <tmsriram@google.com>

	* plugin-api.h (enum ld_plugin_level): Assign integers
	explicitly for all values.

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

	PR other/54620
	PR target/39064
	* md5.h (md5_uintptr, md5_uint32): Define as uintptr_t/uint32_t if
	stdint.h and sys/types.h headers are present.
	* sha1.h (sha1_uintptr, sha1_uint32): Likewise.

2012-12-18  Aldy Hernandez  <aldyh@redhat.com>

	PR other/54324
	* ansidecl.h (ATTRIBUTE_UNUSED): Do not set __attribute__ for GCC
	< 3.4.

2012-11-09  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_TAGGED_NAME.

2012-10-29  Sterling Augustine  <saugustine@google.com>
            Cary Coutant  <ccoutant@google.com>

	* dwarf2.h (dwarf_location_list_entry_type): New enum with fields
	DW_LLE_GNU_end_of_list_entry, DW_LLE_GNU_base_address_selection_entry,
	DW_LLE_GNU_start_end_entry and DW_LLE_GNU_start_length_entry.


2012-10-08  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_TLS_INIT and DEMANGLE_COMPONENT_TLS_WRAPPER.

2012-09-18  Florian Weimer  <fweimer@redhat.com>

	PR other/54411
	* objalloc.h (objalloc_alloc): Do not use fast path on wraparound.

2012-09-06  Cary Coutant  <ccoutant@google.com>

	* dwarf2.def: Edit comment.

2012-08-24  Sriraman Tallam  <tmsriram@google.com>

	* plugin-api.h (ld_plugin_allow_unique_segment_for_sections):
	New interface.
	(ld_plugin_unique_segment_for_sections): New interface.
	(LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val.
	(LDPT_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val.
	(tv_allow_unique_segment_for_sections): New member.
	(tv_unique_segment_for_sections): New member.

2012-07-13  Doug Evans  <dje@google.com>

	* filenames.h: #include "hashtab.h".
	(filename_hash, filename_eq): Declare.

2012-06-18  Doug Evans  <dje@google.com>

	* dwarf2.def (DW_OP): Add DW_OP_GNU_const_index.

2012-06-12  Rafael Ávila de Espíndola <respindola@mozilla.com>

	* plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE.

2012-06-08  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New
	forms.
	* dwarf2.h (enum dwarf_macro_record_type): Add
	DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt
	and DW_MACRO_GNU_transparent_include_alt.

2012-05-23  Doug Evans  <dje@google.com>

	* leb128.h: #include stdint.h, inttypes.h.
	(read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
	Change to take a uint64_t * argument instead of unsigned long long.
	(read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
	Change to take an int64_t * argument instead of long long.

2012-05-22  Doug Evans  <dje@google.com>

	* leb128.h: New file.

2012-05-19  Gary Funck  <gary@intrepid.com>

	* dwarf2.def: Update comment re: UPC extensions to reference
	DWARF4 specification.

2012-05-02  Cary Coutant  <ccoutant@google.com>

	* dwarf2.def: Remove DW_FORM_GNU_ref_index,
	replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.

2012-04-28  Doug Evans  <dje@google.com>

	* dwarf2.def (DW_OP): Add DW_OP_GNU_addr_index.

2012-04-27  Tom Tromey  <tromey@redhat.com>

	* dwarf2.h: Wrap function declarations in extern "C".

2012-04-27  Tom Tromey  <tromey@redhat.com>

	* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
	(enum dwarf_location_atom, enum dwarf_type, enum
	dwarf_call_frame_info): Remove.
	(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
	(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
	Include dwarf2.def.
	(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
	(get_DW_OP_name, get_DW_ATE_name): Declare.
	* dwarf2.def: New file, from dwarf2.h.

2012-04-10  Tristan Gingold  <gingold@adacore.com>

	* splay-tree.h: Conditionnaly includes stdint.h and inttypes.h
	(libi_uhostptr_t, libi_shostptr_t): Remove, replaced by uintptr_t.

2012-01-26  Cary Coutant  <ccoutant@google.com>

	* dwarf2.h (enum dwarf_form): Add Fission extensions.
	(enum dwarf_attribute): Likewise.

2012-01-06  Jason Merrill  <jason@redhat.com>

	PR c++/6057
	PR c++/48051
	PR c++/50855
	PR c++/51322
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_INITIALIZER_LIST, DEMANGLE_COMPONENT_NULLARY.

2011-11-07  Richard Henderson  <rth@redhat.com>

	Merged from transactional-memory.

	* demangle.h (enum gnu_v3_ctor_kinds): Add gnu_v3_object_ctor_group.
	(enum gnu_v3_dtor_kinds): Add gnu_v3_object_dtor_group.
	(DEMANGLE_COMPONENT_TRANSACTION_CLONE): New.
	(DEMANGLE_COMPONENT_NONTRANSACTION_CLONE): New.

2011-10-21  Ulrich Drepper  <drepper@gmail.com>

	* obstack.h [!GNUC] (obstack_free): Avoid cast to int.

2011-10-21  Marc Glisse  <marc.glisse@inria.fr>

	* ansidecl.h (ENUM_BITFIELD): Always use enum in C++

2011-09-28  Doug Evans  <dje@google.com>

	* timeval-utils.h: New file.

	* libiberty.h (countargv): Declare.

2011-09-26  Cary Coutant  <ccoutant@google.com>

	PR lto/47247
	* plugin-api.h (enum ld_plugin_symbol_resolution): Add
	LDPR_PREVAILING_DEF_IRONLY_EXP.
	(enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2.

2011-09-23  Cary Coutant  <ccoutant@google.com>

	PR 40831
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_CLONE.

2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* xregex.h (regoff_t): Define.

2011-07-22  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (DW_AT_GNU_macros): New.
	(enum dwarf_macro_record_type): New enum.  Add DW_MACRO_GNU_*.

	PR c++/49756
	* libiberty.h (stack_limit_increase): New prototype.

2011-07-13  Sriraman Tallam  <tmsriram@google.com>
	
	* plugin-api.h
	(ld_plugin_section): New struct.
	(ld_plugin_get_section_count): New typedef.
	(ld_plugin_get_section_type): New typedef.
	(ld_plugin_get_section_name): New typedef.
	(ld_plugin_get_section_contents): New typedef.
	(ld_plugin_update_section_order): New typedef.
	(ld_plugin_allow_section_ordering): New typedef.
	(LDPT_GET_SECTION_COUNT): New enum value.
	(LDPT_GET_SECTION_TYPE): New enum value.
	(LDPT_GET_SECTION_NAME): New enum value.
	(LDPT_GET_SECTION_CONTENTS): New enum value.
	(LDPT_UPDATE_SECTION_ORDER): New enum value.
	(LDPT_ALLOW_SECTION_ORDERING): New enum value.
	(tv_get_section_count): New struct members.
	(tv_get_section_type): New struct members.
	(tv_get_section_name): New struct members.
	(tv_get_section_contents): New struct members.
	(tv_update_section_order): New struct members.
	(tv_allow_section_ordering): New struct members.

2011-07-01  Joel Brobecker  <brobecker@adacore.com>

	* filenames.h (HAVE_CASE_INSENSITIVE_FILE_SYSTEM): Define
	on Darwin, as well as on the systems that use a DOS-like
	filesystem.

2011-06-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/47858
	* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.

2011-06-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* demangle.h (DMGL_RET_POSTFIX): Extend the comment.
	(DMGL_RET_DROP): New.

2011-04-30  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
	DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret): New.

2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* ansidecl.h (ENUM_BITFIELD): New, from gcc/system.h.

2011-03-31  Tristan Gingold  <gingold@adacore.com>

	* dwarf2.h (dwarf_line_number_hp_sfc_ops): New enum.

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

	* dwarf2.h (dwarf_form): Remove deprecated DW_FORM_sig8 define.

2010-03-23  Rafael Ávila de Espíndola <respindola@mozilla.com>

	* plugin-api.h (ld_plugin_get_view): New.
	(ld_plugin_tag): Add LDPT_GET_VIEW.
	(ld_plugin_tv): Add tv_get_view.

2011-03-16  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
	DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
	DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
	DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
	DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
	DW_OP_GNU_entry_value): New.

2011-02-28  Kai Tietz  <kai.tietz@onevision.com>

	* filenames.h (filename_ncmp): New prototype.

2011-02-23  Kai Tietz  <kai.tietz@onevision.com>

	* dwarf2.h (_ELF_DWARF2_H): Renamed to
	_DWARF2_H.
	(DWARF2_External_LineInfo, DWARF2_Internal_LineInfo,
	DWARF2_External_PubNames, DWARF2_Internal_PubNames,
	DWARF2_External_CompUnit, DWARF2_Internal_CompUnit,
	DWARF2_External_ARange, DWARF2_Internal_ARange): Removed.

2011-01-12  Iain Sandoe  <iains@gcc.gnu.org>

	* dwarf2.h: Update value for DW_AT_hi_user.

2010-11-16  Ian Lance Taylor  <iant@google.com>

	* simple-object.h (simple_object_attributes_merge): Declare,
	replacing simple_object_attributes_compare.

2010-11-04  Ian Lance Taylor  <iant@google.com>

	* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Go.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	* simple-object.h: New file.

2010-10-15  Dave Korn  <dave.korn.cygwin@gmail.com> 

	Sync LD plugin patch series (part 1/6) with src/include/.
	* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.

2010-10-06  Andi Kleen  <ak@linux.intel.com>

	* libiberty.h (setproctitle): Add prototype.

2010-09-09  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (DW_OP_GNU_implicit_pointer): New.

2010-07-06  Ken Werner  <ken.werner@de.ibm.com>

	* floatformat.h (floatformat_ieee_half_big): Add declaration.
	(floatformat_ieee_half_little): Likewise.

2010-06-21  Rafael Espindola  <espindola@google.com>

	* plugin-api.h (ld_plugin_set_extra_library_path): New.
	(ld_plugin_tag): Add LDPT_SET_EXTRA_LIBRARY_PATH.
	(ld_plugin_tv): Add tv_set_extra_library_path.

2010-06-21  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (enum dwarf_type): Add DW_ATE_UTF.

2010-06-18  Rafael Espindola  <espindola@google.com>

	* plugin.h (ld_plugin_add_input_file, ld_plugin_add_input_library):
	Make argument const.

2010-06-08  Tristan Gingold  <gingold@adacore.com>

	* dwarf2.h (enum dwarf_tag): Add DW_TAG_HP_Bliss_field and
	DW_TAG_HP_Bliss_field_set.
	(enum dwarf_attribute): Add DW_AT_HP_prologue, DW_AT_HP_epilogue,
	DW_AT_HP_unit_name, DW_AT_HP_unit_size, DW_AT_HP_widened_byte_size,
	DW_AT_HP_definition_points, DW_AT_HP_default_location and
	DW_AT_HP_is_result_param.
	(enum dwarf_type): Add DW_ATE_HP_VAX_float, DW_ATE_HP_VAX_float_d,
	DW_ATE_HP_packed_decimal, DW_ATE_HP_zoned_decimal, DW_ATE_HP_edited,
	DW_ATE_HP_signed_fixed, DW_ATE_HP_unsigned_fixed,
	DW_ATE_HP_VAX_complex_float and DW_ATE_HP_VAX_complex_float_d.
	(enum dwarf_line_number_x_ops): Add
	DW_LNE_HP_source_file_correlation.
	(enum dwarf_source_language): Add DW_LANG_HP_Bliss,
	DW_LANG_HP_Basic91, DW_LANG_HP_Pascal91, DW_LANG_HP_IMacro,
	DW_LANG_HP_Assembler.

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* splay-tree.h: Update copyright years.
	(splay_tree_s): Document fields.
	(splay_tree_new_typed_alloc): New.

	* hashtab.h: Update copyright years.
	(htab_create_typed_alloc): New.

2010-06-01  Rafael Espindola  <espindola@google.com>

	* plugin-api.h (ld_plugin_tag): Add LDPT_OUTPUT_NAME.

2010-04-26  Pedro Alves  <pedro@codesourcery.com>

	* filenames.h (PATH_SEPARATOR): Delete.

2010-04-23  Pedro Alves  <pedro@codesourcery.com>

	* filenames.h (IS_DIR_SEPARATOR_1): Rename from IS_DIR_SEPARATOR,
	always define it independently of host, add `dos_based' parameter,
	and handle it.
	(PATH_SEPARATOR): Define.
	(HAS_DRIVE_SPEC_1): Rename from HAS_DRIVE_SPEC, always define it
	independently of host, add `dos_based' parameter, and handle it.
	(IS_ABSOLUTE_PATH_1): Rename from IS_ABSOLUTE_PATH, always define
	it independently of host, add `dos_based' parameter, and handle
	it.
	(IS_DOS_DIR_SEPARATOR, IS_DOS_ABSOLUTE_PATH)
	(IS_UNIX_DIR_SEPARATOR, IS_UNIX_ABSOLUTE_PATH)
	(HAS_DOS_DRIVE_SPEC): New.
	(HAS_DRIVE_SPEC): Reimplement on top of HAS_DRIVE_SPEC_1.
	(IS_DIR_SEPARATOR): Reimplement on top of IS_DIR_SEPARATOR_1.
	(IS_ABSOLUTE_PATH): Reimplement on top of IS_ABSOLUTE_PATH_1.
	* libiberty.h (dos_lbasename, unix_lbasename): Declare.

2010-04-20  Nick Clifton  <nickc@redhat.com>

	* sha1.h: Update copyright notice to use GPLv3.

2010-04-14  Doug Evans  <dje@google.com>

	* filenames.h (HAS_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros.

2010-04-13  Matthias Klose  <doko@ubuntu.com>

	* elf: Remove empty directory.

2010-04-06  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (DWARF2_Internal_LineInfo): Add li_max_ops_per_insn
	field.

2010-03-23  Joseph Myers  <joseph@codesourcery.com>

	* symcat.h (CONCAT5, CONCAT6, XCONCAT5, XCONCAT6): Define.

2010-01-13  Joel Brobecker  <brobecker@adacore.com>

	Add new DW_AT_use_GNAT_descriptive_type CU attribute.
	* dwarf2.h (dwarf_attribute): Add DW_AT_use_GNAT_descriptive_type.

2010-01-11  Tristan Gingold  <gingold@adacore.com>

	* demangle.h (ada_demangle): Add prototype.

2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/41771
	* ansidecl.h: Fix inline test for C99 and Sun Studio cc.

2009-12-29  Joel Brobecker  <brobecker@adacore.com>

	* dwarf2.h (enum dwarf_attribute): Add DW_AT_GNAT_descriptive_type.

2009-11-06  Jonas Maebe  <jonas.maebe@elis.ugent.be>

	Add DWARF attribute value for the "Borland fastcall" calling
	convention.
	* elf/dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant.

2009-10-23  Kai Tietz  <kai.tietz@onevision.com>

	* splay-tree.h (libi_uhostptr_t): Add gcc specific
	__extension__ for long long type case to silent cX9.
	(libi_shostptr_t): Likewise.

2009-10-19  Rafael Avila de Espindola  <espindola@google.com>

	PR40790
	* plugin-api.h: Don't include stdint.h unconditionally.

2009-10-15  Jakub Jelinek  <jakub@redhat.com>

	* include/dwarf2.h (DW_LANG_Python): Add comment that it is
	a DWARF 4 addition.

2009-10-09  Rafael Espindola  <espindola@google.com>

	* plugin-api.h (ld_plugin_add_input_library): Change argument name to
	libname.

2009-10-05  Rafael Espindola  <espindola@google.com>

	* plugin-api.h (ld_plugin_status): Add LDPS_BAD_HANDLE.
	(ld_plugin_get_input_file): New.
	(ld_plugin_release_input_file): New.
	(ld_plugin_add_input_library): New.
	(ld_plugin_message): Mark format const.
	(ld_plugin_level): Add LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE and
	LDPT_ADD_INPUT_LIBRARY.
	(ld_plugin_tv): Add tv_get_input_file, tv_release_input_file and
	tv_add_input_library.

2009-10-04  Jerry Quinn  <jlquinn@optonline.net>

	* plugin-api.h: Fix compile.

2009-10-03  Rafael Espindola  <espindola@google.com>

	* plugin-api.h: New.
	* lto-symtab.h: New.

2009-09-29  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_LAMBDA, DEMANGLE_COMPONENT_DEFAULT_ARG,
	DEMANGLE_COMPONENT_UNNAMED_TYPE.
	(struct demangle_component): Add s_unary_num.

2009-09-25  Dodji Seketeli  <dodji@redhat.com>

	* dwarf2.h (enum dwarf_tag): Rename DW_TAG_template_parameter_pack and
	DW_TAG_formal_parameter_pack into DW_TAG_GNU_template_parameter_pack
	and DW_TAG_formal_parameter_pack until DWARF 5 is out.

2009-09-25  Cary Coutant  <ccoutant@google.com>

	Add rest of new values from DWARF Version 4.
	* dwarf2.h (DW_TAG_rvalue_reference_type, DW_TAG_template_alias):
	New tags.
	(DW_FORM_ref_sig8): New name for DW_FORM_sig8.
	(DW_AT_main_subprogram, DW_AT_data_bit_offset, DW_AT_const_expr,
	DW_AT_enum_class, DW_AT_linkage_name, DW_AT_GNU_guarded_by,
	DW_AT_GNU_pt_guarded_by, DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded,
	DW_AT_GNU_locks_excluded, DW_AT_GNU_exclusive_locks_required,
	DW_AT_GNU_shared_locks_required, DW_AT_GNU_odr_signature): New
	attributes.
	(DW_LANG_Python): New language.

2009-09-22  Dodji Seketeli  <dodji@redhat.com>

	* dwarf2.h (enum dwarf_tag): Add
	DW_TAG_template_parameter_pack and DW_TAG_formal_parameter_pack.

2009-07-24  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/40854
	* libiberty.h (xcrc32): Rename from crc32.

2009-07-24  Ian Lance Taylor  <iant@google.com>

	* libiberty.h (crc32): Declare.

2009-07-20  Cary Coutant  <ccoutant@google.com>
	    Doug Evans  <dje@google.com>

	Add some dwarf4 values.
	* dwarf2.h (enum dwarf_tag): Add DW_TAG_type_unit.
	(enum dwarf_form): Add DW_FORM_sec_offset, DW_FORM_exprloc,
	DW_FORM_flag_present, DW_FORM_sig8.
	(enum dwarf_attribute): Add DW_AT_signature.

2009-07-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* demangle.h
	(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
	(enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>):
	New.

2009-07-09  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
	and DW_OP_stack_value.

2009-07-09  Tom Tromey  <tromey@redhat.com>

	* elf/dwarf2.h: Remove, renaming to...
	* dwarf2.h: ... this.

2009-06-29  Tom Tromey  <tromey@redhat.com>

	* elf/dwarf2.h: New file.  Merged with gdb.

2009-06-09  Ian Lance Taylor  <ian@airs.com>

	* ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define for C++.

2009-06-03  Ian Lance Taylor  <iant@google.com>

	* ansidecl.h (EXPORTED_CONST): Define.

2009-05-31  Ian Lance Taylor  <iant@google.com>

	* ansidecl.h: Add extern "C" when compiling with C++.  Treat C++
	the way we treat an ISO C compiler.  Don't define inline as a
	macro when compiling with C++.
	* dyn-string.h: Add header guard DYN_STRING_H.  Add extern "C"
	when compiling with C++.
	* fibheap.h: Add extern "C" when compiling with C++.

2009-04-22  Taras Glek <tglek@mozilla.com>

	* hashtab.h: Update GTY annotations to new syntax.
	* splay-tree.h: Likewise.

2009-03-17  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_FUNCTION_PARAM.

2008-12-10  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add 
	DEMANGLE_COMPONENT_FIXED_TYPE.

2008-11-19  Bob Wilson  <bob.wilson@acm.org>
	
	* xtensa-config.h (XCHAL_HAVE_MUL16, XCHAL_HAVE_MUL32, XCHAL_HAVE_DIV32)
	(XCHAL_HAVE_MINMAX, XCHAL_HAVE_SEXT, XCHAL_HAVE_THREADPTR)
	(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): Change to 1.
	(XCHAL_NUM_AREGS): Change to 32.
	(XCHAL_ICACHE_SIZE, XCHAL_DCACHE_SIZE): Change to 16K.
	(XCHAL_ICACHE_LINESIZE, XCHAL_DCACHE_LINESIZE): Change to 32.
	(XCHAL_ICACHE_LINEWIDTH, XCHAL_DCACHE_LINEWIDTH): Change to 5.
	(XCHAL_DCACHE_IS_WRITEBACK): Change to 1.
	(XCHAL_DEBUGLEVEL): Change to 6.
	
2008-10-21  Alan Modra  <amodra@bigpond.net.au>

	* obstack.h (obstack_finish <!__GNUC__>): Cast result to void *.

2008-10-06  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_PACK_EXPANSION.

2008-09-09  Jason Merrill  <jason@redhat.com>

	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_DECLTYPE.

2008-07-07  Joel Brobecker  <brobecker@adacore.com>

	* safe-ctype.h: Add #include of ctype.h before redefining
	the ctype.h macros.

2008-07-04  Joel Brobecker  <brobecker@adacore.com>

	* safe-ctype.h: Remove #error when detecting that ctype.h has been
	included. Redefine the various macros provided by ctype.h as
	undefined variables.

2008-06-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (XALLOCA, XDUP, XALLOCAVEC, XDUPVEC, XALLOCAVAR,
	XDUPVAR, XOBNEWVEC, XOBNEWVAR): New.

2008-03-24  Ian Lance Taylor  <iant@google.com>

	* sha1.h: New file, from gnulib.

	* md5.h: Add extern "C" when compiled with C++.

2008-03-21  Ian Lance Taylor  <iant@google.com>

	* filenames.h: Add extern "C" when compiled with C++.

2008-02-11  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-config.h (XCHAL_HAVE_THREADPTR): Redefine to zero.
	(XCHAL_NUM_AREGS, XCHAL_MAX_INSTRUCTION_SIZE): New.

2008-01-26  David Daney  <ddaney@avtrex.com>

	* demangle.h (demangle_component_type):  Add
	DEMANGLE_COMPONENT_JAVA_RESOURCE,
	DEMANGLE_COMPONENT_COMPOUND_NAME, and
	DEMANGLE_COMPONENT_CHARACTER as new enum values.
	(demangle_component): Add struct s_character to union u.

2007-11-07  Joseph Myers  <joseph@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* floatformat.h (struct floatformat): Add split_half field.
	(floatformat_ibm_long_double): New.

2007-09-06  Tom Tromey  <tromey@redhat.com>

	* libiberty.h (pex_free): Document process killing.

2007-08-31  Douglas Gregor  <doug.gregor@gmail.com>
	
	* demangle.h (enum demangle_component_type): Add
	DEMANGLE_COMPONENT_RVALUE_REFERENCE. 

2007-07-25  Ben Elliston  <bje@au.ibm.com>

	* ternary.h: Remove.

2007-07-18  Bob Wilson  <bob.wilson@acm.org>
	
	* xtensa-config.h (XCHAL_HAVE_THREADPTR): New.
	(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): New.
	
2007-07-17  Nick Clifton  <nickc@redhat.com>

	* COPYING3: New file.  Contains version 3 of the GNU General
	Public License.

2007-07-12  Kai Tietz   <kai.tietz@onevision.com>

	* splay-tree.h (libi_uhostptr_t, libi_shostptr_t): New types,
	needed for WIN64 when a long is not wide enough for a pointer.
        (splay_tree_key, splay_tree_value): Use the new types.

2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>

	* libiberty.h (writeargv): Declare.

2007-04-25  Mark Mitchell  <mark@codesourcery.com>

	* demangle.h: Change license to LGPL + exception.

2007-03-29  Joel Brobecker  <brobecker@adacore.com>

	* filenames.h (FILENAME_CMP): Adjust define to call filename_cmp
	regardless of the type of file system.

2007-03-06  Jan Hubicka  <jh@suse.cz>
	
	* ansidecl.h (ATTRIBUTE_COLD, ATTRIBUTE_HOT): New.

2007-02-09  Joseph S. Myers  <joseph@codesourcery.com>

	* libiberty.h (pex_write_input): Remove prototype.

2007-01-31  Vladimir Prus  <vladimir@codesourcery.com>
	
	* libiberty.h (PEX_STDERR_TO_PIPE): New define.
	(PEX_BINARY_ERROR): New define.
	(pex_read_err): New function.

2007-01-29  Simon Baldwin <simonb@google.com>

	* demangle.h: New cplus_demangle_print_callback,
	cplus_demangle_v3_callback, and java_demangle_v3_callback function
	prototypes, and demangle_callbackref type definition.

2006-12-06  Nick Clifton  <nickc@redhat.com>

	* ansidecl.h (ATTRIBUTE_PACKED): Define.

2006-11-30  Andrew Stubbs  <andrew.stubbs@st.com>
            J"orn Rennecke <joern.rennecke@st.com>

	PR driver/29931
	* libiberty.h (make_relative_prefix_ignore_links): Declare.

2006-11-27  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-config.h (XSHAL_ABI): New.
	(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): New.

2006-04-11  Jim Blandy  <jimb@codesourcery.com>

	* libiberty.h (pex_input_file, pex_input_pipe): New declarations.

2006-01-18  DJ Delorie  <dj@redhat.com>

	* md5.h: Include ansidecl.h

2006-01-09  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-config.h (XCHAL_HAVE_MUL32_HIGH): Define.

2005-12-30  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New.

2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>

	PR java/9861
	* demangle.h : Add DMGL_RET_POSTFIX define to enable alternative
	output format for return types

2005-10-31  Mark Kettenis  <kettenis@gnu.org>

	* floatformat.h (enum floatformat_byteorders): Add
	floatformat_vax.
	(floatformat_vax_aingle, floatformat_vax_double): Declare.

2005-09-26  Mark Mitchell  <mark@codesourcery.com>

	* libiberty.h (expandargv): New function.

2005-08-17  Mark Kettenis  <kettenis@gnu.org>

	* floatformat.h (struct floatformat): Change type of large
	argument for is_valid member to `const void *'.
	(floatformat_to_double): Change type of second argument to `const
	void *'.
	(floatformat_from_double): Change type of last argument to `void
	*'.
	(floatformat_is_valid): Change type of last argument to `const
	void *'.

2005-07-12  Ben Elliston  <bje@au.ibm.com>

	* xregex2.h (regexec): Qualify this prototype with __extension__
	when compiling with GNU C.

2005-07-03  Steve Ellcey  <sje@cup.hp.com>

	PR other/13906
	* ansidecl.h (ATTRIBUTE_ALIGNED_ALIGNOF): New.
	* md5.h (md5_uintptr): New.
	(md5_ctx): Align buffer field.

2005-06-30  Daniel Berlin  <dberlin@dberlin.org>
	
	* hashtab.h (HTAB_DELETED_ENTRY): New macro.
	(HTAB_EMPTY_ENTRY): New macro.

2005-06-20  Geoffrey Keating  <geoffk@apple.com>

	* libiberty.h (strverscmp): Prototype. 

2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* libiberty.h (XOBFINISH): New.

2005-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (vsnprintf): Add format attribute.

2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ansidecl.h: Add ATTRIBUTE_FPTR_PRINTF.

2005-05-28  Eli Zaretskii  <eliz@gnu.org>

	* libiberty.h: (snprintf) [!HAVE_DECL_SNPRINTF]: Declare if
	needed.
	(vsnprintf) [!HAVE_DECL_VSNPRINTF]: Declare if needed.

2005-05-25  Richard Henderson  <rth@redhat.com>

	* demangle.h (DEMANGLE_COMPONENT_HIDDEN_ALIAS): New.

2005-05-24  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* libiberty.h (ACONCAT): Properly cast value of alloca().

	* ansidecl.h (ATTRIBUTE_UNUSED_LABEL): Don't define if
	__cplusplus.

2005-05-12  Steve Ellcey  <sje@cup.hp.com>

	libiberty.h: Do not define empty basename prototype.

2005-05-10  Nick Clifton  <nickc@redhat.com>

	* Update the address and phone number of the FSF organization in
	the GPL notices in the following files:
	COPYING, ansidecl.h, bfdlink.h, bout.h, demangle.h, dis-asm.h,
	dyn-string.h, fibheap.h, filenames.h, floatformat.h,
	fnmatch.h, gdbm.h, getopt.h, hashtab.h, hp-symtab.h, ieee.h,
	libiberty.h, md5.h, oasys.h, objalloc.h, obstack.h, os9k.h,
	partition.h, progress.h, safe-ctype.h, sort.h, splay-tree.h,
	symcat.h, ternary.h, xregex2.h, xtensa-config.h,
	xtensa-isa-internal.h, xtensa-isa.h

2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (unlock_std_streams): New.

2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* hashtab.h, libiberty.h, objalloc.h, splay-tree.h, ternary.h:
	Don't use the PTR macro.

	* sort.h: Don't use the PARAMS macro.

2005-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (unlock_stream): New.

2005-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
	Remove parameter names.

2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (fopen_unlocked, fdopen_unlocked, freopen_unlocked):
	Provide prototypes for new functions.

2005-03-29  Ian Lance Taylor  <ian@airs.com>

	* libiberty.h: Fix indentation.

2005-03-28  Ian Lance Taylor  <ian@airs.com>

	* libiberty.h: Include <stdio.h>.
	(PEX_RECORD_TIMES, PEX_USE_PIPES, PEX_SAVE_TEMPS): Define.
	(PEX_LAST, PEX_SEARCH, PEX_SUFFIX, PEX_STDERR_TO_STDOUT): Define.
	(PEX_BINARY_INPUT, PEX_BINARY_OUTPUT): Define.
	(pex_init, pex_run, pex_read_output): Declare.
	(pex_get_status, pex_get_times, pex_free, pex_one): Declare.
	(struct pex_time): Define.

2005-03-28  Mark Mitchell <mark@codesourcery.com>

	* libiberty.h (ffs): Declare, if necessary.

2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* xregex2.h (_RE_ARGS): Remove definition and uses.

2005-03-27  Gabriel Dos Reis  <gdr@integreable-solutions.net>

	* ternary.h: Don't use PARAMS anymore.

2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* partition.h: Remove use of PARAMS.
	* obstack.h: Remove conditional prototypes __STDC__.
	* objalloc.h:  Remove use of PARAMS.
	* splay-tree.h: Likewise.

2005-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* md5.h: Remove definition and uses of __P.
	* dyn-string.h: Remove uses of PARAMS.
	* fibheap.h: Likewise.
	* floatformat.h: Likewise.
	* hashtab.h: Likewise.

2005-03-26  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* demangle.h: Remove uses of PARAMS.

	* libiberty.h (ANSI_PROTOTYPES): Remove guard since
	ANSI_PROTOTYPES is always assumed.
	Remove uses of PARAMS throughout.

2005-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (xstrndup): Declare.

2005-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* libiberty.h (make_relative_prefix): Add ATTRIBUTE_MALLOC.

2005-03-09  Mark Mitchell  <mark@codesourcery.com>

	* libiberty.h (gettimeofday): Declare.

2005-03-01  Jan Beulich  <jbeulich@novell.com>

	* libiberty.h: Declare unlink_if_ordinary.

2005-02-14  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/19818
	* ansidecl.h (PARAMS): Guard from redefinition.

2004-12-11  Ben Elliston  <bje@au.ibm.com>

	* fibheap.h (struct fibnode): Only use unsigned long bitfields
	when __GNUC__ is defined and ints are less than 32-bits wide.

2004-10-07  Bob Wilson  <bob.wilson@acm.org>

	* xtensa-config.h (XSHAL_USE_ABSOLUTE_LITERALS,
	XCHAL_HAVE_PREDICTED_BRANCHES, XCHAL_INST_FETCH_WIDTH): New.
	(XCHAL_EXTRA_SA_SIZE, XCHAL_EXTRA_SA_ALIGN): Delete.

2004-09-13  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* libiberty.h (basename): Prototype for __MINGW32__.

2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ansidecl.h (ATTRIBUTE_SENTINEL): Define.
	* libiberty.h (concat, reconcat, concat_length, concat_copy,
	concat_copy2): Use ATTRIBUTE_SENTINEL.

2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* libiberty.h (XDELETE, XDELETEVEC, XRESIZEVEC): Remove any
	const-qualification before disposal.

2004-07-24  Bernardo Innocenti  <bernie@develer.com>

	* ansidecl.h (ARG_UNUSED): New Macro.

2004-07-24  Bernardo Innocenti  <bernie@develer.com>

	* libiberty.h (XNEW, XCNEW, XNEWVEC, XCNEWVEC, XOBNEW): Move here from
	libcpp/internal.h.
	(XDELETE, XRESIZEVEC, XDELETEVEC, XNEWVAR, XCNEWVAR, XRESIZEVAR): New
	macros.

2004-07-21  Paolo Bonzini  <bonzini@gnu.org>

	* ansidecl.h (ATTRIBUTE_PURE): New.

2004-07-13  Bernardo Innocenti  <bernie@develer.com>

	* libiberty.h (ASTRDUP): Add casts required for stricter
	type conversion rules of C++.
	* obstack.h (obstack_free): Likewise.

2004-05-04  Andreas Jaeger  <aj@suse.de>

	* demangle.h: Do not use C++ reserved keyword typename as
	parameter for cplus_demangle_fill_builtin_type.

2004-04-22  Richard Henderson  <rth@redhat.com>

	* hashtab.h (struct htab): Add size_prime_index.

2004-04-13  Jeff Law  <law@redhat.com>

	* hashtab.h (htab_remove_elt_with_hash): Prototype new function.

2004-03-30  Zack Weinberg  <zack@codesourcery.com>

	* hashtab.h, splay-tree.h: Use new shorter form of GTY markers.

2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>

	* dyn-string.h: Update copyright date.

2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>

	* dyn-string.h: Remove test of IN_LIBGCC2 and IN_GLIBCPP_V3 and
	the associated #defines.

2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>

	* demangle.h: Instead of checking ANSI_PROTOTYPES, just include
	"libiberty.h".

	* demangle.h: If ANSI_PROTOTYPES is defined, include <stddef.h>.

	* demangle.h (enum demangle_component_type): Define.
	(struct demangle_operator_info): Declare.
	(struct demangle_builtin_type_info): Declare.
	(struct demangle_component): Define.
	(cplus_demangle_fill_component): Declare.
	(cplus_demangle_fill_name): Declare.
	(cplus_demangle_fill_builtin_type): Declare.
	(cplus_demangle_fill_operator): Declare.
	(cplus_demangle_fill_extended_operator): Declare.
	(cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare.
	(cplus_demangle_v3_components): Declare.
	(cplus_demangle_print): Declare.

For older changes see ChangeLog-9103

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
