2020-03-12  Release Manager

	* GCC 9.3.0 released.

2019-08-12  Release Manager

	* GCC 9.2.0 released.

2019-05-03  Release Manager

	* GCC 9.1.0 released.

2019-04-03  Vineet Gupta  <vgupta@synopsys.com>

	PR89877
	* longlong.h [__arc__] (add_ssaaaa): Add cc clobber.
	(sub_ddmmss): Likewise.

2019-02-11  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* splay-tree.h (splay_tree_delete_key_fn): Update comment.
	(splay_tree_delete_value_fn): Likewise.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615

	* libiberty.h: Mechanically replace "can not" with "cannot".
	* plugin-api.h: Likewise.

2019-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2018-12-28  Thomas Schwinge  <thomas@codesourcery.com>

	* gomp-constants.h (GOACC_FLAG_HOST_FALLBACK)
	(GOACC_FLAGS_MARSHAL_OP, GOACC_FLAGS_UNMARSHAL): Define.

2018-12-22  Jason Merrill  <jason@redhat.com>

	* demangle.h: Remove support for ancient GNU (pre-3.0), Lucid,
	ARM, HP, and EDG demangling styles.

2018-12-11  Nick Clifton  <nickc@redhat.com>

	PR 88409
	* demangle.h (DEMANGLE_RECURSION_LIMIT): Increase to 2048.

2018-12-07  Nick Clifton  <nickc@redhat.com>

	* demangle.h (DMGL_NO_RECURSE_LIMIT): Define.
        (DEMANGLE_RECURSION_LIMIT): Define

2018-11-08  Jakub Jelinek  <jakub@redhat.com>

	* gomp-constants.h (GOMP_TASK_FLAG_REDUCTION,
	GOMP_DEPEND_IN, GOMP_DEPEND_OUT, GOMP_DEPEND_INOUT,
	GOMP_DEPEND_MUTEXINOUTSET): Define.

2018-10-19  Jason Merrill  <jason@redhat.com>

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

2018-10-29  David Malcolm  <dmalcolm@redhat.com>

	* unique-ptr.h (gnu::move): Generalize so it applies to all
	lvalue references, rather than just to unique_ptr values.

2018-07-26  Martin Liska  <mliska@suse.cz>

	PR lto/86548
	* libiberty.h (make_temp_file_with_prefix): New function.

2018-05-30  Jan Hubicka  <hubicka@ucw.cz>

	* simple-object.h (simple_object_copy_lto_debug_sections): Add rename
	parameter.

2018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* splay-tree.h (splay_tree_compare_strings,
	splay_tree_delete_pointers): Declare new utility functions.

2018-05-24  Tom Rix  <trix@juniper.net>

	* dwarf2.def (DW_FORM_strx*, DW_FORM_addrx*): New.

2018-05-02  Alan Modra  <amodra@gmail.com>

	* ansidecl.h (ATTRIBUTE_NONSTRING): Define.

2018-05-01  Sriraman Tallam  <tmsriram@google.com>

	* plugin-api.h: Add plugin API to get the list of wrap
	symbols.

2018-02-09  Alexandre Oliva <aoliva@redhat.com>

	* dwarf2.def (DW_AT_GNU_entry_view): New.

	* dwarf2.def (DW_AT_GNU_locviews): New.
	* dwarf2.h (enum dwarf_location_list_entry_type): Add
	DW_LLE_GNU_view_pair.
	(DW_LLE_view_pair): Define.

2018-01-03  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2017-11-20  Kito Cheng  <kito.cheng@gmail.com>

	* longlong.h [__riscv] (__umulsidi3): Define.
	[__riscv] (umul_ppmm): Likewise.
	[__riscv] (__muluw3): Likewise.

2017-11-10  Stephen Crane <sjc@immunant.com>

	* plugin-api.h: Add plugin API for processing plugin-added
	input files.

2017-10-23  David Malcolm  <dmalcolm@redhat.com>

	* unique-ptr.h: Make include of <memory> conditional on C++11 or
	later.

2017-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
	    David Malcolm  <dmalcolm@redhat.com>

	* unique-ptr.h: New file.

2017-09-15  Yao Qi  <yao.qi@linaro.org>
	    Pedro Alves  <palves@redhat.com>

	* ansidecl.h (DISABLE_COPY_AND_ASSIGN): New macro.

2017-09-12  Jiong Wang  <jiong.wang@arm.com>

	* dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
	* dwarf2.h (DW_CFA_DUP): New define.

2017-08-21  Richard Biener  <rguenther@suse.de>

	* simple-object.h (simple_object_copy_lto_debug_sections): New
	function.

2017-07-31  Nick Clifton  <nickc@redhat.com>

	Binutils PR 21850
	* ansidecl.h (OVERRIDE): Protect check of __cplusplus value with
	#idef __cplusplus.

2017-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf2.def (DW_IDX_compile_unit, DW_IDX_type_unit, DW_IDX_die_offset)
	(DW_IDX_parent, DW_IDX_type_hash, DW_IDX_lo_user, DW_IDX_hi_user)
	(DW_IDX_GNU_internal, DW_IDX_GNU_external): New.
	* dwarf2.h (DW_IDX, DW_IDX_DUP, DW_FIRST_IDX, DW_END_IDX): New.
	(enum dwarf_name_index_attribute): Remove.
	(get_DW_IDX_name): New declaration.

2017-05-27  Maya Rashish  <coypu@sdf.org>

	* longlong.h: Remove ns32k support.

2017-05-24  Nathan Sidwell  <nathan@acm.org>

	* libiberty.h (ASTRDUP): Adjust cast to avoid warning.

2017-05-19  Eli Zaretskii <eliz@gnu.org>

	* environ.h: Add #ifndef guard.

2017-05-18  Martin Liska  <mliska@suse.cz>

	* ansidecl.h: Define CONSTEXPR macro.

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:
