Home | History | Annotate | Line # | Download | only in libctf
      1 2020-09-23  H.J. Lu  <hongjiu.lu (a] intel.com>
      2 
      3 	PR libctf/26934
      4 	* ctf-dump.c (ctf_dump_objts): Pass format argument to asprintf.
      5 
      6 2020-11-23  Nick Alcock  <nick.alcock (a] oracle.com>
      7 
      8 	* ctf-impl.h (ctf_dict_t) <ctf_symtab_little_endian>: New.
      9 	(struct ctf_archive_internal) <ctfi_symsect_little_endian>: Likewise.
     10 	* ctf-create.c (ctf_serialize): Adjust for new field.
     11 	* ctf-open.c (init_symtab): Note the semantics of repeated calls.
     12 	(ctf_symsect_endianness): New.
     13 	(ctf_bufopen_internal): Set ctf_symtab_little_endian suitably for
     14 	the native endianness.
     15 	(_Static_assert): Moved...
     16 	(swap_thing): ... with this...
     17 	* swap.h: ... to here.
     18 	* ctf-util.c (ctf_elf32_to_link_sym): Use it, byteswapping the
     19 	Elf32_Sym if the ctf_symtab_little_endian demands it.
     20 	(ctf_elf64_to_link_sym): Likewise swap the Elf64_Sym if needed.
     21 	* ctf-archive.c (ctf_arc_symsect_endianness): New, set the
     22 	endianness of the symtab used by the dicts in an archive.
     23 	(ctf_archive_iter_internal): Initialize to unknown (assumed native,
     24 	do not call ctf_symsect_endianness).
     25 	(ctf_dict_open_by_offset): Call ctf_symsect_endianness if need be.
     26 	(ctf_dict_open_internal): Propagate the endianness down.
     27 	(ctf_dict_open_sections): Likewise.
     28 	* ctf-open-bfd.c (ctf_bfdopen_ctfsect): Get the endianness from the
     29 	struct bfd and pass it down to the archive.
     30 	* libctf.ver: Add ctf_symsect_endianness and
     31 	ctf_arc_symsect_endianness.
     32 
     33 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     34 
     35 	* ctf-link.c (ctf_link_deduplicating): Clean up the ctf_link_outputs
     36 	hash on error.
     37 
     38 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     39 
     40 	* ctf-create.c (ctf_dtd_insert): Set ENOMEM on the dict if out of memory.
     41 	(ctf_dvd_insert): Likewise.
     42 	(ctf_add_function): Report ECTF_RDONLY if this dict is not writable.
     43 	* ctf-subr.c (ctf_err_warn): Only debug-dump passed-in warnings if
     44 	the passed-in error code is nonzero: the error on the dict for
     45 	warnings may relate to a previous error.
     46 
     47 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     48 
     49 	* ctf-open.c (ctf_getsymsect): New.
     50 	(ctf_getstrsect): Likewise.
     51 	* libctf.ver: Add them.
     52 
     53 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     54 
     55 	* ctf-impl.h (struct ctf_archive_internal) <ctfi_dicts>: New, dicts
     56 	the archive machinery has opened and cached.
     57 	<ctfi_symdicts>: New, cache of dicts containing symbols looked up.
     58 	<ctfi_syms>: New, cache of types of symbols looked up.
     59 	* ctf-archive.c (ctf_arc_close): Free them on close.
     60 	(enosym): New, flag entry for 'symbol not present'.
     61 	(ctf_arc_import_parent): New, automatically import the parent from
     62 	".ctf" if this is a child in an archive and ".ctf" is present.
     63 	(ctf_dict_open_sections): Use it.
     64 	(ctf_archive_iter_internal): Likewise.
     65 	(ctf_cached_dict_close): New, thunk around ctf_dict_close.
     66 	(ctf_dict_open_cached): New, open and cache a dict.
     67 	(ctf_arc_flush_caches): New, flush the caches.
     68 	(ctf_arc_lookup_symbol): New, look up a symbol in (all members of)
     69 	an archive, and cache the lookup.
     70 	(ctf_archive_iter): Note the new caching behaviour.
     71 	(ctf_archive_next): Use ctf_dict_open_cached.
     72 	* libctf.ver: Add ctf_arc_lookup_symbol and ctf_arc_flush_caches.
     73 
     74 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     75 
     76 	* ctf-dedup.c (ctf_dedup_rhash_type): Null out the names of nameless
     77 	type kinds, just in case the input has named them.
     78 
     79 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     80 
     81 	* ctf-dump.c (ctf_dump_header): Dump the new flags bits and the index
     82 	section lengths.
     83 	(ctf_dump_objts): Report indexed sections.  Also dump functions.  Use
     84 	ctf_symbol_next, not manual looping.
     85 	(ctf_dump_funcs): Delete.
     86 	(ctf_dump): Use ctf_dump_objts, not ctf_dump_funcs.
     87 
     88 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
     89 
     90 	* ctf-impl.h (CTF_INDEX_PAD_THRESHOLD): New.
     91 	(_libctf_nonnull_): Likewise.
     92 	(ctf_in_flight_dynsym_t): New.
     93 	(ctf_dict_t) <ctf_funcidx_names>: Likewise.
     94 	<ctf_objtidx_names>: Likewise.
     95 	<ctf_nfuncidx>: Likewise.
     96 	<ctf_nobjtidx>: Likewise.
     97 	<ctf_funcidx_sxlate>: Likewise.
     98 	<ctf_objtidx_sxlate>: Likewise.
     99 	<ctf_objthash>: Likewise.
    100 	<ctf_funchash>: Likewise.
    101 	<ctf_dynsyms>: Likewise.
    102 	<ctf_dynsymidx>: Likewise.
    103 	<ctf_dynsymmax>: Likewise.
    104 	<ctf_in_flight_dynsym>: Likewise.
    105 	(struct ctf_next) <u.ctn_next>: Likewise.
    106 	(ctf_symtab_skippable): New prototype.
    107 	(ctf_add_funcobjt_sym): Likewise.
    108 	(ctf_dynhash_sort_by_name): Likewise.
    109 	(ctf_sym_to_elf64): Rename to...
    110 	(ctf_elf32_to_link_sym): ... this, and...
    111 	(ctf_elf64_to_link_sym): ... this.
    112 	* ctf-open.c (init_symtab): Check for lack of CTF_F_NEWFUNCINFO
    113 	flag, and presence of index sections.  Refactor out
    114 	ctf_symtab_skippable and ctf_elf*_to_link_sym, and use them.  Use
    115 	ctf_link_sym_t, not Elf64_Sym.  Skip initializing objt or func
    116 	sxlate sections if corresponding index section is present.  Adjust
    117 	for new func info section format.
    118 	(ctf_bufopen_internal): Add ctf_err_warn to corrupt-file error
    119 	handling.  Report incorrect-length index sections.  Always do an
    120 	init_symtab, even if there is no symtab section (there may be index
    121 	sections still).
    122 	(flip_objts): Adjust comment: func and objt sections are actually
    123 	identical in structure now, no need to caveat.
    124 	(ctf_dict_close):  Free newly-added data structures.
    125 	* ctf-create.c (ctf_create): Initialize them.
    126 	(ctf_symtab_skippable): New, refactored out of
    127 	init_symtab, with st_nameidx_set check added.
    128 	(ctf_add_funcobjt_sym): New, add a function or object symbol to the
    129 	ctf_objthash or ctf_funchash, by name.
    130 	(ctf_add_objt_sym): Call it.
    131 	(ctf_add_func_sym): Likewise.
    132 	(symtypetab_delete_nonstatic_vars): New, delete vars also present as
    133 	data objects.
    134 	(CTF_SYMTYPETAB_EMIT_FUNCTION): New flag to symtypetab emitters:
    135 	this is a function emission, not a data object emission.
    136 	(CTF_SYMTYPETAB_EMIT_PAD): New flag to symtypetab emitters: emit
    137 	pads for symbols with no type (only set for unindexed sections).
    138 	(CTF_SYMTYPETAB_FORCE_INDEXED): New flag to symtypetab emitters:
    139 	always emit indexed.
    140 	(symtypetab_density): New, figure out section sizes.
    141 	(emit_symtypetab): New, emit a symtypetab.
    142 	(emit_symtypetab_index): New, emit a symtypetab index.
    143 	(ctf_serialize): Call them, emitting suitably sorted symtypetab
    144 	sections and indexes.  Set suitable header flags.  Copy over new
    145 	fields.
    146 	* ctf-hash.c (ctf_dynhash_sort_by_name): New, used to impose an
    147 	order on symtypetab index sections.
    148 	* ctf-link.c (ctf_add_type_mapping): Delete erroneous comment
    149 	relating to code that was never committed.
    150 	(ctf_link_one_variable): Improve variable name.
    151 	(check_sym): New, symtypetab analogue of check_variable.
    152 	(ctf_link_deduplicating_one_symtypetab): New.
    153 	(ctf_link_deduplicating_syms): Likewise.
    154 	(ctf_link_deduplicating): Call them.
    155 	(ctf_link_deduplicating_per_cu): Note that we don't call them in
    156 	this case (yet).
    157 	(ctf_link_add_strtab): Set the error on the fp correctly.
    158 	(ctf_link_add_linker_symbol): New (no longer a do-nothing stub), add
    159 	a linker symbol to the in-flight list.
    160 	(ctf_link_shuffle_syms): New (no longer a do-nothing stub), turn the
    161 	in-flight list into a mapping we can use, now its names are
    162 	resolvable in the external strtab.
    163 	* ctf-string.c (ctf_str_rollback_atom): Don't roll back atoms with
    164 	external strtab offsets.
    165 	(ctf_str_rollback): Adjust comment.
    166 	(ctf_str_write_strtab): Migrate ctf_syn_ext_strtab population from
    167 	writeout time...
    168 	(ctf_str_add_external): ... to string addition time.
    169 	* ctf-lookup.c (ctf_lookup_var_key_t): Rename to...
    170 	(ctf_lookup_idx_key_t): ... this, now we use it for syms too.
    171 	<clik_names>: New member, a name table.
    172 	(ctf_lookup_var): Adjust accordingly.
    173 	(ctf_lookup_variable): Likewise.
    174 	(ctf_lookup_by_id): Shuffle further up in the file.
    175 	(ctf_symidx_sort_arg_cb): New, callback for...
    176 	(sort_symidx_by_name): ... this new function to sort a symidx
    177 	found to be unsorted (likely originating from the compiler).
    178 	(ctf_symidx_sort): New, sort a symidx.
    179 	(ctf_lookup_symbol_name): Support dynamic symbols with indexes
    180 	provided by the linker.  Use ctf_link_sym_t, not Elf64_Sym.
    181 	Check the parent if a child lookup fails.
    182 	(ctf_lookup_by_symbol): Likewise.  Work for function symbols too.
    183 	(ctf_symbol_next): New, iterate over symbols with types (without
    184 	sorting).
    185 	(ctf_lookup_idx_name): New, bsearch for symbol names in indexes.
    186 	(ctf_try_lookup_indexed): New, attempt an indexed lookup.
    187 	(ctf_func_info): Reimplement in terms of ctf_lookup_by_symbol.
    188 	(ctf_func_args): Likewise.
    189 	(ctf_get_dict): Move...
    190 	* ctf-types.c (ctf_get_dict): ... here.
    191 	* ctf-util.c (ctf_sym_to_elf64): Re-express as...
    192 	(ctf_elf64_to_link_sym): ... this.  Add new st_symidx field, and
    193 	st_nameidx_set (always 0, so st_nameidx can be ignored).  Look in
    194 	the ELF strtab for names.
    195 	(ctf_elf32_to_link_sym): Likewise, for Elf32_Sym.
    196 	(ctf_next_destroy): Destroy ctf_next_t.u.ctn_next if need be.
    197 	* libctf.ver: Add ctf_symbol_next, ctf_add_objt_sym and
    198 	ctf_add_func_sym.
    199 
    200 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
    201 
    202 	* ctf-link.c (ctf_link_shuffle_syms): Adjust.
    203 	(ctf_link_add_linker_symbol): New, unimplemented stub.
    204 	* libctf.ver: Add it.
    205 	* ctf-create.c (ctf_serialize): Set CTF_F_DYNSTR on newly-serialized
    206 	dicts.
    207 	* ctf-open-bfd.c (ctf_bfdopen_ctfsect): Check for the flag: open the
    208 	symtab/strtab if not present, dynsym/dynstr otherwise.
    209 	* ctf-archive.c (ctf_arc_bufpreamble): New, get the preamble from
    210 	some arbitrary member of a CTF archive.
    211 	* ctf-impl.h (ctf_arc_bufpreamble): Declare it.
    212 
    213 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
    214 
    215 	* ctf-archive.c (ctf_arc_open_by_offset): Rename to...
    216 	(ctf_dict_open_by_offset): ... this.  Adjust callers.
    217 	(ctf_arc_open_by_name_internal): Rename to...
    218 	(ctf_dict_open_internal): ... this.  Adjust callers.
    219 	(ctf_arc_open_by_name_sections): Rename to...
    220 	(ctf_dict_open_sections): ... this, keeping compatibility function.
    221 	(ctf_arc_open_by_name): Rename to...
    222 	(ctf_dict_open): ... this, keeping compatibility function.
    223 	* libctf.ver: New functions added.
    224 	* ctf-link.c (ctf_link_one_input_archive): Adjusted accordingly.
    225 	(ctf_link_deduplicating_open_inputs): Likewise.
    226 
    227 2020-11-20  Nick Alcock  <nick.alcock (a] oracle.com>
    228 
    229 	* ctf-impl.h: Rename ctf_file_t to ctf_dict_t: all declarations
    230 	adjusted.
    231 	(ctf_fileops): Rename to...
    232 	(ctf_dictops): ... this.
    233 	(ctf_dedup_t) <cd_id_to_file_t>: Rename to...
    234 	<cd_id_to_dict_t>: ... this.
    235 	(ctf_file_t): Fix outdated comment.
    236 	<ctf_fileops>: Rename to...
    237 	<ctf_dictops>: ... this.
    238 	(struct ctf_archive_internal) <ctfi_file>: Rename to...
    239 	<ctfi_dict>: ... this.
    240 	* ctf-archive.c: Rename ctf_file_t to ctf_dict_t.
    241 	Rename ctf_archive.ctfa_nfiles to ctfa_ndicts.
    242 	Rename ctf_file_close to ctf_dict_close.  All users adjusted.
    243 	* ctf-create.c: Likewise.  Refer to CTF dicts, not CTF containers.
    244 	(ctf_bundle_t) <ctb_file>: Rename to...
    245 	<ctb_dict): ... this.
    246 	* ctf-decl.c: Rename ctf_file_t to ctf_dict_t.
    247 	* ctf-dedup.c: Likewise.  Rename ctf_file_close to
    248 	ctf_dict_close. Refer to CTF dicts, not CTF containers.
    249 	* ctf-dump.c: Likewise.
    250 	* ctf-error.c: Likewise.
    251 	* ctf-hash.c: Likewise.
    252 	* ctf-inlines.h: Likewise.
    253 	* ctf-labels.c: Likewise.
    254 	* ctf-link.c: Likewise.
    255 	* ctf-lookup.c: Likewise.
    256 	* ctf-open-bfd.c: Likewise.
    257 	* ctf-string.c: Likewise.
    258 	* ctf-subr.c: Likewise.
    259 	* ctf-types.c: Likewise.
    260 	* ctf-util.c: Likewise.
    261 	* ctf-open.c: Likewise.
    262 	(ctf_file_close): Rename to...
    263 	(ctf_dict_close): ...this.
    264 	(ctf_file_close): New trivial wrapper around ctf_dict_close, for
    265 	compatibility.
    266 	(ctf_parent_file): Rename to...
    267 	(ctf_parent_dict): ... this.
    268 	(ctf_parent_file): New trivial wrapper around ctf_parent_dict, for
    269 	compatibility.
    270 	* libctf.ver: Add ctf_dict_close and ctf_parent_dict.
    271 
    272 2020-10-21  Tom Tromey  <tromey (a] adacore.com>
    273 
    274 	* mkerrors.sed: Remove.
    275 	* ctf-error.c (_CTF_FIRST): New define.
    276 	(_CTF_ITEM): Define this, not _CTF_STR.
    277 	(_ctf_errlist, _ctf_erridx): Use _CTF_ERRORS.
    278 	(ERRSTRFIELD): Rewrite.
    279 	(ERRSTRFIELD1): Remove.
    280 	* Makefile.in: Rebuild.
    281 	* Makefile.am (BUILT_SOURCES): Remove.
    282 	(ctf-error.h): Remove.
    283 
    284 2020-08-27  Nick Alcock  <nick.alcock (a] oracle.com>
    285 
    286 	* ctf-subr.c (open_errors): New list.
    287 	(ctf_err_warn): Calls with NULL fp append to open_errors.  Add err
    288 	parameter, and use it to decorate the debug stream with errmsgs.
    289 	(ctf_err_warn_to_open): Splice errors from a CTF dict into the
    290 	open_errors.
    291 	(ctf_errwarning_next): Calls with NULL fp report from open_errors.
    292 	New err param to report iteration errors (including end-of-iteration)
    293 	when fp is NULL.
    294 	(ctf_assert_fail_internal): Adjust ctf_err_warn call for new err
    295 	parameter: gettextize.
    296 	* ctf-impl.h (ctfo_get_vbytes): Add ctf_file_t parameter.
    297 	(LCTF_VBYTES): Adjust.
    298 	(ctf_err_warn_to_open): New.
    299 	(ctf_err_warn): Adjust.
    300 	(ctf_bundle): Used in only one place: move...
    301 	* ctf-create.c: ... here.
    302 	(enumcmp): Use ctf_err_warn, not ctf_dprintf, passing the err number
    303 	down as needed.  Don't emit the errmsg.  Gettextize.
    304 	(membcmp): Likewise.
    305 	(ctf_add_type_internal): Likewise.
    306 	(ctf_write_mem): Likewise.
    307 	(ctf_compress_write): Likewise.  Report errors writing the header or
    308 	body.
    309 	(ctf_write): Likewise.
    310 	* ctf-archive.c (ctf_arc_write_fd): Use ctf_err_warn, not
    311 	ctf_dprintf, and gettextize, as above.
    312 	(ctf_arc_write): Likewise.
    313 	(ctf_arc_bufopen): Likewise.
    314 	(ctf_arc_open_internal): Likewise.
    315 	* ctf-labels.c (ctf_label_iter): Likewise.
    316 	* ctf-open-bfd.c (ctf_bfdclose): Likewise.
    317 	(ctf_bfdopen): Likewise.
    318 	(ctf_bfdopen_ctfsect): Likewise.
    319 	(ctf_fdopen): Likewise.
    320 	* ctf-string.c (ctf_str_write_strtab): Likewise.
    321 	* ctf-types.c (ctf_type_resolve): Likewise.
    322 	* ctf-open.c (get_vbytes_common): Likewise. Pass down the ctf dict.
    323 	(get_vbytes_v1): Pass down the ctf dict.
    324 	(get_vbytes_v2): Likewise.
    325 	(flip_ctf): Likewise.
    326 	(flip_types): Likewise. Use ctf_err_warn, not ctf_dprintf, and
    327 	gettextize, as above.
    328 	(upgrade_types_v1): Adjust calls.
    329 	(init_types): Use ctf_err_warn, not ctf_dprintf, as above.
    330 	(ctf_bufopen_internal): Likewise. Adjust calls. Transplant errors
    331 	emitted into individual dicts into the open errors if this turns
    332 	out to be a failed open in the end.
    333 	* ctf-dump.c (ctf_dump_format_type): Adjust ctf_err_warn for new err
    334 	argument.  Gettextize.  Don't emit the errmsg.
    335 	(ctf_dump_funcs): Likewise.  Collapse err label into its only case.
    336 	(ctf_dump_type): Likewise.
    337 	* ctf-link.c (ctf_create_per_cu): Adjust ctf_err_warn for new err
    338 	argument.  Gettextize.  Don't emit the errmsg.
    339 	(ctf_link_one_type): Likewise.
    340 	(ctf_link_lazy_open): Likewise.
    341 	(ctf_link_one_input_archive): Likewise.
    342 	(ctf_link_deduplicating_count_inputs): Likewise.
    343 	(ctf_link_deduplicating_open_inputs): Likewise.
    344 	(ctf_link_deduplicating_close_inputs): Likewise.
    345 	(ctf_link_deduplicating): Likewise.
    346 	(ctf_link): Likewise.
    347 	(ctf_link_deduplicating_per_cu): Likewise. Add some missed
    348 	ctf_set_errnos to obscure error cases.
    349 	* ctf-dedup.c (ctf_dedup_rhash_type): Adjust ctf_err_warn for new
    350 	err argument.  Gettextize.  Don't emit the errmsg.
    351 	(ctf_dedup_populate_mappings): Likewise.
    352 	(ctf_dedup_detect_name_ambiguity): Likewise.
    353 	(ctf_dedup_init): Likewise.
    354 	(ctf_dedup_multiple_input_dicts): Likewise.
    355 	(ctf_dedup_conflictify_unshared): Likewise.
    356 	(ctf_dedup): Likewise.
    357 	(ctf_dedup_rwalk_one_output_mapping): Likewise.
    358 	(ctf_dedup_id_to_target): Likewise.
    359 	(ctf_dedup_emit_type): Likewise.
    360 	(ctf_dedup_emit_struct_members): Likewise.
    361 	(ctf_dedup_populate_type_mapping): Likewise.
    362 	(ctf_dedup_populate_type_mappings): Likewise.
    363 	(ctf_dedup_emit): Likewise.
    364 	(ctf_dedup_hash_type): Likewise. Fix a bit of messed-up error
    365 	status setting.
    366 	(ctf_dedup_rwalk_one_output_mapping): Likewise. Don't hide
    367 	unknown-type-kind messages (which signify file corruption).
    368 
    369 2020-08-27  Nick Alcock  <nick.alcock (a] oracle.com>
    370 
    371 	* configure.ac: Adjust package name to simply 'libctf': arbitrarily
    372 	declare this to be version 1.2.0.
    373 	* Makefile.am (AM_CPPFLAGS): Add @INCINTL@.
    374 	* Makefile.in: Regenerated.
    375 	* configure: Regenerated.
    376 	* ctf-intl.h: New file, lightly modified from opcodes/opintl.h.
    377 	* ctf-impl.h: Include it.
    378 	* ctf-error.r (_ctf_errlist_t): Mark strings as noop-translatable.
    379 	(ctf_errmsg): Actually translate them.
    380 
    381 2020-07-26  Eli Zaretskii  <eliz (a] gnu.org>
    382 
    383 	PR binutils/25155:
    384 	* ctf-create.c (EOVERFLOW): If not defined by system header,
    385 	redirect to ERANGE as a poor man's substitute.
    386 	* ctf-subr.c (ENOTSUP): If not defined, use ENOSYS instead.
    387 
    388 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    389 
    390 	* ctf-create.c (ctf_dtd_insert): Add uintptr_t casts.
    391 	(ctf_dtd_delete): Likewise.
    392 	(ctf_dtd_lookup): Likewise.
    393 	(ctf_rollback): Likewise.
    394 	* ctf-hash.c (ctf_hash_lookup_type): Likewise.
    395 	* ctf-types.c (ctf_lookup_by_rawhash): Likewise.
    396 
    397 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    398 
    399 	* ctf-lookup.c (ctf_lookup_by_name): Adjust.
    400 
    401 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    402 
    403 	* ctf-archive.c (ctf_arc_bufopen): Endian-swap the archive magic
    404 	number if needed.
    405 
    406 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    407 
    408 	* ctf-impl.h (ctf_list_splice): New.
    409 	* ctf-util.h (ctf_list_splice): Likewise.
    410 	* ctf-link.c (link_sort_inputs_cb_arg_t): Likewise.
    411 	(ctf_link_sort_inputs): Likewise.
    412 	(ctf_link_deduplicating_count_inputs): Likewise.
    413 	(ctf_link_deduplicating_open_inputs): Likewise.
    414 	(ctf_link_deduplicating_close_inputs): Likewise.
    415 	(ctf_link_deduplicating_variables): Likewise.
    416 	(ctf_link_deduplicating_per_cu): Likewise.
    417 	(ctf_link_deduplicating): Likewise.
    418 	(ctf_link): Call it.
    419 
    420 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    421 
    422 	* ctf-link.c (ctf_link_one_input_archive_member): Check
    423 	CTF_LINK_OMIT_VARIABLES_SECTION.
    424 
    425 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    426 
    427 	* ctf-impl.h (ctf_type_id_key): New, the key in the
    428 	cd_id_to_file_t.
    429 	(ctf_dedup): New, core deduplicator state.
    430 	(ctf_file_t) <ctf_dedup>: New.
    431 	<ctf_dedup_atoms>: New.
    432 	<ctf_dedup_atoms_alloc>: New.
    433 	(ctf_hash_type_id_key): New prototype.
    434 	(ctf_hash_eq_type_id_key): Likewise.
    435 	(ctf_dedup_atoms_init): Likewise.
    436 	* ctf-hash.c (ctf_hash_eq_type_id_key): New.
    437 	(ctf_dedup_atoms_init): Likewise.
    438 	* ctf-create.c (ctf_serialize): Adjusted.
    439 	(ctf_add_encoded): No longer static.
    440 	(ctf_add_reftype): Likewise.
    441 	* ctf-open.c (ctf_file_close): Destroy the
    442 	ctf_dedup_atoms_alloc.
    443 	* ctf-dedup.c: New file.
    444         * ctf-decls.h [!HAVE_DECL_STPCPY]: Add prototype.
    445 	* configure.ac: Check for stpcpy.
    446 	* Makefile.am: Add it.
    447 	* Makefile.in: Regenerate.
    448         * config.h.in: Regenerate.
    449         * configure: Regenerate.
    450 
    451 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    452 
    453 	* configure.ac: Add --enable-libctf-hash-debugging.
    454 	* aclocal.m4: Pull in enable.m4, for GCC_ENABLE.
    455 	* Makefile.in: Regenerated.
    456 	* configure: Likewise.
    457 	* config.h.in: Likewise.
    458 	* ctf-impl.h [ENABLE_LIBCTF_HASH_DEBUGGING]
    459 	(ctf_assert): Define to assert.
    460 
    461 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    462 
    463 	* ctf-sha1.h: New, inline wrappers around sha1_init_ctx and
    464 	sha1_process_bytes.
    465 	* ctf-impl.h: Include it.
    466 	(ctf_sha1_init): New.
    467 	(ctf_sha1_add): Likewise.
    468 	(ctf_sha1_fini): Likewise.
    469 	* ctf-sha1.c: New, non-inline wrapper around sha1_finish_ctx
    470 	producing strings.
    471 	* Makefile.am: Add file.
    472 	* Makefile.in: Regenerate.
    473 
    474 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    475 
    476 	* libctf.ver (ctf_link_set_variable_filter): Add.
    477 	* ctf-impl.h (ctf_file_t) <ctf_link_variable_filter>: New.
    478 	<ctf_link_variable_filter_arg>: Likewise.
    479 	* ctf-create.c (ctf_serialize): Adjust.
    480 	* ctf-link.c (ctf_link_set_variable_filter): New, set it.
    481 	(ctf_link_one_variable): Call it if set.
    482 
    483 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    484 
    485 	* ctf-link.c (ctf_link_one_variable): Check the dst_type for
    486 	conflicts, not the source type.
    487 
    488 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    489 
    490 	* ctf-impl.h (ctf_file_t): Improve comments.
    491 	<ctf_link_cu_mapping>: Split into...
    492 	<ctf_link_in_cu_mapping>: ... this...
    493 	<ctf_link_out_cu_mapping>: ... and this.
    494 	* ctf-create.c (ctf_serialize): Adjust.
    495 	* ctf-open.c (ctf_file_close): Likewise.
    496 	* ctf-link.c (ctf_create_per_cu): Look things up in the
    497 	in_cu_mapping instead of the cu_mapping.
    498 	(ctf_link_add_cu_mapping): The deduplicating link will define
    499 	what happens if many FROMs share a TO.
    500 	(ctf_link_add_cu_mapping): Create in_cu_mapping and
    501 	out_cu_mapping. Do not create ctf_link_outputs here any more, or
    502 	create per-CU dicts here: they are already created when needed.
    503 	(ctf_link_one_variable): Log a debug message if we skip a
    504 	variable due to its type being concealed in a CU-mapped link.
    505 	(This is probably too common a case to make into a warning.)
    506 	(ctf_link): Create empty per-CU dicts if requested.
    507 
    508 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    509 
    510 	* ctf-link.c (ctf_link_write): Close the fd.
    511 
    512 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    513 
    514 	* Makefile.am: Set -DNOBFD=1 in libctf-nobfd, and =0 elsewhere.
    515 	* Makefile.in: Regenerated.
    516 	* ctf-impl.h (ctf_link_input_name): New.
    517 	(ctf_file_t) <ctf_link_flags>: New.
    518 	* ctf-create.c (ctf_serialize): Adjust accordingly.
    519 	* ctf-link.c: Define ctf_open as weak when PIC.
    520 	(ctf_arc_close_thunk): Remove unnecessary thunk.
    521 	(ctf_file_close_thunk): Likewise.
    522 	(ctf_link_input_name): New.
    523 	(ctf_link_input_t): New value of the ctf_file_t.ctf_link_input.
    524 	(ctf_link_input_close): Adjust accordingly.
    525 	(ctf_link_add_ctf_internal): New, split from...
    526 	(ctf_link_add_ctf): ... here.  Return error if lazy loading of
    527 	CTF is not possible.  Change to just call...
    528 	(ctf_link_add): ... this new function.
    529 	(ctf_link_add_cu_mapping): Transition to ctf_err_warn.  Drop the
    530 	ctf_file_close_thunk.
    531 	(ctf_link_in_member_cb_arg_t) <file_name> Rename to...
    532 	<in_file_name>: ... this.
    533 	<arcname>: Drop.
    534 	<share_mode>: Likewise (migrated to ctf_link_flags).
    535 	<done_main_member>: Rename to...
    536 	<done_parent>: ... this.
    537 	<main_input_fp>: Rename to...
    538 	<in_fp_parent>: ... this.
    539 	<cu_mapped>: New.
    540 	(ctf_link_one_type): Adjuwt accordingly.  Transition to
    541 	ctf_err_warn, removing a TODO.
    542 	(ctf_link_one_variable): Note a case too common to warn about.
    543 	Report in the debug stream if a cu-mapped link prevents addition
    544 	of a conflicting variable.
    545 	(ctf_link_one_input_archive_member): Adjust.
    546 	(ctf_link_lazy_open): New, open a CTF archive for linking when
    547 	needed.
    548 	(ctf_link_close_one_input_archive): New, close it again.
    549 	(ctf_link_one_input_archive): Adjust for lazy opening, member
    550 	renames, and ctf_err_warn transition.  Move the
    551 	empty_link_type_mapping call to...
    552 	(ctf_link): ... here.  Adjut for renamings and thunk removal.
    553 	Don't spuriously fail if some input contains no CTF data.
    554 	(ctf_link_write): ctf_err_warn transition.
    555 	* libctf.ver: Remove not-yet-stable comment.
    556 
    557 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    558 
    559 	* ctf-impl.h (ctf_strerror): Delete.
    560 	* ctf-subr.c (ctf_strerror): Likewise.
    561 	* ctf-error.c (ctf_errmsg): Stop using ctf_strerror: just use
    562 	strerror directly.
    563 
    564 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    565 
    566 	* ctf-impl.c (ctf_file_t) <ctf_parent_unreffed>: New.
    567 	(ctf_import_unref): New.
    568 	* ctf-open.c (ctf_file_close) Drop the refcount all the way to
    569 	zero.  Don't recurse back in if the refcount is already zero.
    570 	(ctf_import): Check ctf_parent_unreffed before deciding whether
    571 	to close a pre-existing parent.  Set it to zero.
    572 	(ctf_import_unreffed): New, as above, setting
    573 	ctf_parent_unreffed to 1.
    574 	* ctf-create.c (ctf_serialize): Do not ctf_import into the new
    575 	child: use direct assignment, and set unreffed on the new and
    576 	old children.
    577 	* ctf-link.c (ctf_create_per_cu): Import the parent using
    578 	ctf_import_unreffed.
    579 
    580 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    581 
    582 	* ctf-impl.h (ctf_link_type_mapping_key): Rename to...
    583 	(ctf_link_type_key): ... this, adjusting member prefixes to
    584 	match.
    585 	(ctf_hash_type_mapping_key): Rename to...
    586 	(ctf_hash_type_key): ... this.
    587 	(ctf_hash_eq_type_mapping_key): Rename to...
    588 	(ctf_hash_eq_type_key): ... this.
    589 	* ctf-hash.c (ctf_hash_type_mapping_key): Rename to...
    590 	(ctf_hash_type_key): ... this, and adjust for member name
    591 	changes.
    592 	(ctf_hash_eq_type_mapping_key): Rename to...
    593 	(ctf_hash_eq_type_key): ... this, and adjust for member name
    594 	changes.
    595 	* ctf-link.c (ctf_add_type_mapping): Adjust.  Note the lack of
    596 	need for out-of-memory checking in this code.
    597 	(ctf_type_mapping): Adjust.
    598 
    599 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    600 
    601 	configure.ac: Check for vasprintf.
    602 	configure: Regenerated.
    603 	config.h.in: Likewise.
    604 
    605 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    606 
    607 	* ctf-archive.c (ctf_arc_bufopen): Fix message.
    608 
    609 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    610 
    611 	* ctf-impl.h (struct ctf_archive_internal) <ctfi_free_strsect>
    612 	New.
    613 	* ctf-open-bfd.c (ctf_bfdopen_ctfsect): Explicitly open a strtab
    614 	if the input has no symtab, rather than dividing by
    615 	zero. Arrange to free it later via ctfi_free_ctfsect.
    616 	* ctf-archive.c (ctf_new_archive_internal): Do not
    617 	ctfi_free_strsect by default.
    618 	(ctf_arc_close): Possibly free it here.
    619 
    620 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    621 
    622 	* ctf-dump.c (ctf_is_slice): Delete, unnecessary.
    623 	(ctf_dump_format_type): improve slice formatting.  Always print
    624 	the type size, even of slices.
    625 	(ctf_dump_member): Print slices (-> bitfields) differently from
    626 	non-slices.  Failure to format a type is not an OOM.
    627 
    628 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    629 
    630 	* ctf-dump.c (ctf_dump_format_type): Emit a warning.
    631 	(ctf_dump_label): Swallow errors from ctf_dump_format_type.
    632 	(ctf_dump_objts): Likewise.
    633 	(ctf_dump_var): Likewise.
    634 	(ctf_dump_type): Do not emit a duplicate message.  Move to
    635 	ctf_err_warning, and swallow all errors.
    636 
    637 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    638 
    639 	* ctf-decl.c (ctf_decl_fini): Free the cd_buf.
    640 	(ctf_decl_buf): Once it escapes, don't try to free it later.
    641 
    642 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    643 
    644 	* ctf-types.c (ctf_type_aname): Print arg types here...
    645 	* ctf-dump.c (ctf_dump_funcs): ... not here: but do substitute
    646 	in the type name here.
    647 
    648 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    649 
    650 	* ctf-impl.h (ctf_assert): New.
    651 	(ctf_err_warning_t): Likewise.
    652 	(ctf_file_t) <ctf_errs_warnings>: Likewise.
    653 	(ctf_err_warn): New prototype.
    654 	(ctf_assert_fail_internal): Likewise.
    655 	* ctf-inlines.h (ctf_assert_internal): Likewise.
    656 	* ctf-open.c (ctf_file_close): Free ctf_errs_warnings.
    657 	* ctf-create.c (ctf_serialize): Copy it on serialization.
    658 	* ctf-subr.c (ctf_err_warn): New, add an error/warning.
    659 	(ctf_errwarning_next): New iterator, free and pass back
    660 	errors/warnings in succession.
    661 	* libctf.ver (ctf_errwarning_next): Add.
    662 
    663 2020-07-22  Egeyar Bagcioglu  <egeyar.bagcioglu (a] oracle.com>
    664 
    665 	* ctf-types.c (ctf_variable_iter): Fix error return.
    666 
    667 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    668 
    669 	* ctf-open.c (ctf_bufopen_internal): Diagnose invalid flags.
    670 
    671 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    672 
    673 	ctf-decls.h (ctf_qsort_compar_thunk): Fix arg passing.
    674 
    675 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    676 
    677 	* ctf-impl.h (ctf_next_hkv_t): New, kv-pairs passed to
    678 	sorting functions.
    679 	(ctf_next_t) <u.ctn_sorted_hkv>: New, sorted kv-pairs for
    680 	ctf_dynhash_next_sorted.
    681 	<cu.ctn_h>: New, pointer to the dynhash under iteration.
    682 	<cu.ctn_s>: New, pointer to the dynset under iteration.
    683 	(ctf_hash_sort_f): Sorting function passed to...
    684 	(ctf_dynhash_next_sorted): ... this new function.
    685 	(ctf_dynhash_next): New.
    686 	(ctf_dynset_next): New.
    687 	* ctf-inlines.h (ctf_dynhash_cnext_sorted): New.
    688 	(ctf_dynhash_cnext): New.
    689 	(ctf_dynset_cnext): New.
    690 	* ctf-hash.c (ctf_dynhash_next_sorted): New.
    691 	(ctf_dynhash_next): New.
    692 	(ctf_dynset_next): New.
    693 	* ctf-util.c (ctf_next_destroy): Free the u.ctn_sorted_hkv if
    694 	needed.
    695 	(ctf_next_copy): Alloc-and-copy the u.ctn_sorted_hkv if needed.
    696 
    697 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    698 
    699 	* ctf-impl.h (ctf_next): New.
    700 	(ctf_get_dict): New prototype.
    701 	* ctf-lookup.c (ctf_get_dict): New, split out of...
    702 	(ctf_lookup_by_id): ... here.
    703 	* ctf-util.c (ctf_next_create): New.
    704 	(ctf_next_destroy): New.
    705 	(ctf_next_copy): New.
    706 	* ctf-types.c (includes): Add <assert.h>.
    707 	(ctf_member_next): New.
    708 	(ctf_enum_next): New.
    709 	(ctf_type_iter): Document the lack of iteration over parent
    710 	types.
    711 	(ctf_type_next): New.
    712 	(ctf_variable_next): New.
    713 	* ctf-archive.c (ctf_archive_next): New.
    714 	* libctf.ver: Add new public functions.
    715 
    716 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    717 
    718 	* libctf.ver (ctf_ref): New.
    719 	* ctf-open.c (ctf_ref): Implement it.
    720 
    721 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    722 
    723 	* ctf-inlines.h (ctf_forwardable_kind): New.
    724 	* ctf-create.c (ctf_add_forward): Use it.
    725 
    726 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    727 
    728 	* ctf-impl.h (ctf_get_ctt_size): Move definition from here...
    729 	* ctf-inlines.h (ctf_get_ctt_size): ... to here.
    730 
    731 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    732 
    733 	* ctf-hash.c (ctf_dynset_eq_string): New.
    734 	(ctf_dynset_create): New.
    735 	(DYNSET_EMPTY_ENTRY_REPLACEMENT): New.
    736 	(DYNSET_DELETED_ENTRY_REPLACEMENT): New.
    737 	(key_to_internal): New.
    738 	(internal_to_key): New.
    739 	(ctf_dynset_insert): New.
    740 	(ctf_dynset_remove): New.
    741 	(ctf_dynset_destroy): New.
    742 	(ctf_dynset_lookup): New.
    743 	(ctf_dynset_exists): New.
    744 	(ctf_dynset_lookup_any): New.
    745 	(ctf_hash_insert_type): Coding style.
    746 	(ctf_hash_define_type): Likewise.
    747 	* ctf-impl.h (ctf_dynset_t): New.
    748 	(ctf_dynset_eq_string): New.
    749 	(ctf_dynset_create): New.
    750 	(ctf_dynset_insert): New.
    751 	(ctf_dynset_remove): New.
    752 	(ctf_dynset_destroy): New.
    753 	(ctf_dynset_lookup): New.
    754 	(ctf_dynset_exists): New.
    755 	(ctf_dynset_lookup_any): New.
    756 	* ctf-inlines.h (ctf_dynset_cinsert): New.
    757 
    758 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    759 
    760 	* ctf-hash.c (ctf_helem_t) <key_free>: Remove.
    761 	<value_free>: Likewise.
    762 	<owner>: New.
    763 	(ctf_dynhash_item_free): Indirect through the owner.
    764 	(ctf_dynhash_create): Only pass in ctf_dynhash_item_free and
    765 	allocate space for the key_free and value_free fields fields
    766 	if necessary.
    767 	(ctf_hashtab_insert): Likewise.  Fix OOM errno value.
    768 	(ctf_dynhash_insert): Only access ctf_hashtab's key_free and
    769 	value_free if they will exist.  Set the slot's owner, but only
    770 	if it exists.
    771 	(ctf_dynhash_remove): Adjust.
    772 
    773 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    774 
    775 	* ctf-hash.c (ctf_hashtab_insert): Free the key passed in if
    776 	there is a key-freeing function and the key already exists.
    777 
    778 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    779 
    780 	* ctf-inlines.h: New file.
    781 	* ctf-impl.h: Include it.
    782 	(ctf_hash_iter_find_f): New typedef.
    783 	(ctf_dynhash_elements): New.
    784 	(ctf_dynhash_lookup_kv): New.
    785 	(ctf_dynhash_iter_find): New.
    786 	* ctf-hash.c (ctf_dynhash_lookup_kv): New.
    787 	(ctf_traverse_find_cb_arg_t): New.
    788 	(ctf_hashtab_traverse_find): New.
    789 	(ctf_dynhash_iter_find): New.
    790 	(ctf_dynhash_elements): New.
    791 
    792 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    793 
    794 	* ctf-impl.h [!__GNUC__] (__extension__): Define to nothing.
    795 
    796 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    797 
    798 	* ctf-archive.c (ctf_archive_count): New.
    799 	* libctf.ver: New public function.
    800 
    801 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    802 
    803 	* ctf-types.c (ctf_member_count): New.
    804 	* libctf.ver: New public function.
    805 
    806 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    807 
    808 	* ctf-types.c (ctf_type_kind_forwarded): New.
    809 
    810 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    811 
    812 	* ctf-types.c (ctf_type_name_raw): New.
    813 	(ctf_type_aname_raw): Reimplement accordingly.
    814 
    815 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    816 
    817 	* ctf-subr.c (ctf_dprintf): _libctf_debug is unlikely to be set.
    818 
    819 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    820 
    821 	* ctf-impl.h (struct ctf_archive_internal)
    822 	<ctfi_unmap_on_close>: New.
    823 	(ctf_new_archive_internal): Adjust.
    824 	* ctf-archive.c (ctf_new_archive_internal): Likewise.
    825 	Initialize ctfi_unmap_on_close.  Adjust error path.
    826 	(ctf_arc_bufopen): Adjust ctf_new_archive_internal call
    827 	(unmap_on_close is 0).
    828 	(ctf_arc_close): Only unmap if ctfi_unmap_on_close.
    829 	* ctf-open-bfd.c (ctf_fdopen): Adjust.
    830 
    831 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    832 
    833 	* ctf-types.c (ctf_type_aname): Return ECTF_CORRUPT if
    834 	ints, floats or typedefs have no name.  Fix comment typo.
    835 
    836 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    837 
    838 	* ctf-create.c (ctf_add_slice): Support slices of any kind that
    839 	resolves to an integral type.
    840 	* ctf-types.c (ctf_type_encoding): Resolve the type before
    841 	fishing its encoding out.
    842 
    843 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    844 
    845 	* ctf-create.c (ctf_create): Mark dirty.
    846 
    847 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    848 
    849 	* ctf-create.c (membcmp)  Skip nameless members.
    850 
    851 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    852 
    853 	* ctf-create.c (ctf_add_member_offset): Support names of ""
    854 	as if they were the null pointer.
    855 
    856 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    857 
    858 	* ctf-open.c (init_types): Remove typeless CTF_K_FORWARD
    859 	special-casing.
    860 
    861 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    862 
    863 	* ctf-types.c (ctf_type_reference): Add support for dynamic slices.
    864 
    865 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    866 
    867 	* ctf-create.c (ctf_serialize): Add cast.
    868 	(ctf_add_slice): Likewise.
    869 
    870 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    871 
    872 	* ctf-impl.h (ctf_dtdef_t) <dtu_argv>: Fix type.
    873 	* ctf-create.c (ctf_add_function): Check for unimplemented type
    874 	and populate at the same time.  Populate one-by-one, not via
    875 	memcpy.
    876 	(ctf_serialize): Remove unnecessary cast.
    877 	* ctf-types.c (ctf_func_type_info): Likewise.
    878 	(ctf_func_type_args): Likewise.  Fix comment typo.
    879 
    880 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    881 
    882 	* ctf-create.c (ctf_add_reftype): Support refs to type zero.
    883 	(ctf_add_array): Support array contents of type zero.
    884 	(ctf_add_function): Support arguments and return types of
    885 	type zero.
    886 	(ctf_add_typedef): Support typedefs to type zero.
    887 	(ctf_add_member_offset): Support members of type zero,
    888 	unless added at unspecified (naturally-aligned) offset.
    889 
    890 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    891 
    892 	* ctf-error.c: Include <stddef.h>, for offsetof.
    893 	(_ctf_errlist): Migrate to...
    894 	(_ctf_errlist_t): ... this.
    895 	(_ctf_erridx): New, indexes into _ctf_errlist_t.
    896 	(_ctf_nerr): Remove.
    897 	(ctf_errmsg): Adjust accordingly.
    898 	* Makefile.am (BUILT_SOURCES): Note...
    899 	(ctf-error.h): ... this new rule.
    900 	* Makefile.in: Regenerate.
    901 	* mkerrors.sed: New, process ctf-api.h to generate ctf-error.h.
    902 	* .gitignore: New, ignore ctf-error.h.
    903 
    904 2020-07-22  Nick Alcock  <nick.alcock (a] oracle.com>
    905 
    906 	* ctf-impl.h: Fix typos in comments.
    907 
    908 2020-07-22  Nick Clifton  <nickc (a] redhat.com>
    909 
    910 	* ctf-archive.c (ctf_arc_write): Avoid calling close twice on the
    911 	same file descriptor.
    912 
    913 2020-07-04  Nick Clifton  <nickc (a] redhat.com>
    914 
    915 	Binutils 2.35 branch created.
    916 
    917 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    918 
    919 	* aclocal.m4: Add config/gettext-sister.m4: Shuffle into
    920 	alphabetical order.
    921 	* configure.ac: Add ZW_GNU_GETTEXT_SISTER_DIR.
    922 	* config.h.in: Regenerated.
    923 	* Makefile.in: Likewise.
    924 	* configure: Likewise.
    925 
    926 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    927 
    928 	* ctf-create.c: Include <unistd.h>.
    929 	* ctf-open-bfd.c: Likewise.
    930 
    931 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    932 
    933 	PR libctf/25120
    934 	* configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls.
    935 	* swap.h (bswap_16): Do not assume that presence of <byteswap.h>
    936 	means this is declared.
    937 	(bswap_32): Likewise.
    938 	(bswap_64): Likewise.
    939 	(bswap_identity_64): Remove, unused.
    940 	* configure: Regenerated.
    941 	* config.h.in: Likewise.
    942 
    943 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    944 
    945 	PR libctf/25120
    946 	* ctf-impl.h (_libctf_printflike_): Add non-GNU-C fallback.
    947 	(_libctf_unlikely_): Likewise.
    948 	(_libctf_unused): Likewise.
    949 	(_libctf_malloc_): Likewise.
    950 
    951 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    952 
    953 	PR libctf/25120
    954 	* ctf-archive.c (search_nametbl): No longer global: declare...
    955 	(ctf_arc_open_by_name_internal): ... here. Use bsearch_r.
    956 	(search_modent_by_name): Take and use ARG for the nametbl.
    957 
    958 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    959 
    960 	* ctf-impl.h (ctf_new_archive_internal): Declare.
    961 	(ctf_arc_bufopen): Remove.
    962 	(ctf_archive_internal) <ctfi_free_symsect>: New.
    963 	* ctf-archive.c (ctf_arc_close): Use it.
    964 	(ctf_arc_bufopen): Fuse into...
    965 	(ctf_new_archive_internal): ... this, moved across from...
    966 	* ctf-open-bfd.c: ... here.
    967 	(ctf_bfdopen_ctfsect): Use ctf_arc_bufopen.
    968 	* libctf.ver: Add it.
    969 
    970 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    971 
    972 	* ctf-create.c (ctf_add_forward): Intern in the right namespace.
    973 	(ctf_dtd_delete): Remove correspondingly.
    974 	(ctf_rollback): Likewise.
    975 
    976 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    977 
    978 	* ctf-create.c (ctf_add_type_internal): Hand back existing types
    979 	unchanged.
    980 
    981 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    982 
    983 	* ctf-create.c (ctf_add_forward): Don't add forwards to
    984 	types that already exist.
    985 
    986 2020-06-26  Nick Alcock  <nick.alcock (a] oracle.com>
    987 
    988 	* ctf-open.c (init_types): Only intern root-visible types.
    989 	* ctf-create.c (ctf_dtd_insert): Likewise.
    990 	(ctf_dtd_delete): Only remove root-visible types.
    991 	(ctf_rollback): Likewise.
    992 	(ctf_add_generic): Adjust.
    993 	(ctf_add_struct_sized): Adjust comment.
    994 	(ctf_add_union_sized): Likewise.
    995 	(ctf_add_enum): Likewise.
    996 	* ctf-impl.h (ctf_dtd_insert): Adjust prototype.
    997 
    998 2020-03-11  John Baldwin  <jhb (a] FreeBSD.org>
    999 
   1000 	* swap.h (bswap_identity_64): Make static.
   1001 
   1002 2020-01-18  Nick Clifton  <nickc (a] redhat.com>
   1003 
   1004 	Binutils 2.34 branch created.
   1005 
   1006 2020-01-05  Joel Brobecker  <brobecker (a] adacore.com>
   1007 
   1008 	PR binutils/25155:
   1009 	* configure.ac: Add AC_CHECK_DECLS([asprintf]).
   1010 	* configure, config.h.in: Regenerate.
   1011 
   1012 2020-01-01  Alan Modra  <amodra (a] gmail.com>
   1013 
   1014 	Update year range in copyright notice of all files.
   1015 
   1016 2019-10-16  Simon Marchi  <simon.marchi (a] polymtl.ca>
   1017 
   1018 	* swap.h (bswap_16, bswap_32, bswap_64): Make static.
   1019 
   1020 2019-09-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1021 
   1022 	* ctf-open.c (ctf_bufopen_internal): Fix tabdamage.
   1023 	* ctf-types.c (ctf_type_lname): Likewise.
   1024 
   1025 2019-09-23  Nick Alcock  <nick.alcock (a] oracle.com>
   1026 
   1027 	* ctf-open.c (ctf_import): Do not leak a ctf_file_t ref on every
   1028 	ctf_import after the first for a given file.
   1029 
   1030 2019-09-23  Nick Alcock  <nick.alcock (a] oracle.com>
   1031 
   1032 	* ctf-impl.h (ctf_str_append_noerr): Declare.
   1033 	* ctf-util.c (ctf_str_append_noerr): Define in terms of
   1034 	ctf_str_append.
   1035 	* ctf-dump.c (str_append): New, call it.
   1036 	(ctf_dump_format_type): Use str_append, not ctf_str_append.
   1037 	(ctf_dump_label): Likewise.
   1038 	(ctf_dump_objts): Likewise.
   1039 	(ctf_dump_funcs): Likewise.
   1040 	(ctf_dump_var): Likewise.
   1041 	(ctf_dump_member): Likewise.
   1042 	(ctf_dump_type): Likewise.
   1043 	(ctf_dump): Likewise.
   1044 
   1045 2019-09-23  Nick Alcock  <nick.alcock (a] oracle.com>
   1046 
   1047 	* ctf-impl.h (ctf_alloc): Remove.
   1048 	(ctf_free): Likewise.
   1049 	(ctf_strdup): Likewise.
   1050 	* ctf-subr.c (ctf_alloc): Remove.
   1051 	(ctf_free): Likewise.
   1052 	* ctf-util.c (ctf_strdup): Remove.
   1053 
   1054 	* ctf-create.c (ctf_serialize): Use malloc, not ctf_alloc; free, not
   1055 	ctf_free; strdup, not ctf_strdup.
   1056 	(ctf_dtd_delete): Likewise.
   1057 	(ctf_dvd_delete): Likewise.
   1058 	(ctf_add_generic): Likewise.
   1059 	(ctf_add_function): Likewise.
   1060 	(ctf_add_enumerator): Likewise.
   1061 	(ctf_add_member_offset): Likewise.
   1062 	(ctf_add_variable): Likewise.
   1063 	(membadd): Likewise.
   1064 	(ctf_compress_write): Likewise.
   1065 	(ctf_write_mem): Likewise.
   1066 	* ctf-decl.c (ctf_decl_push): Likewise.
   1067 	(ctf_decl_fini): Likewise.
   1068 	(ctf_decl_sprintf): Likewise.  Check for OOM.
   1069 	* ctf-dump.c (ctf_dump_append): Use malloc, not ctf_alloc; free, not
   1070 	ctf_free; strdup, not ctf_strdup.
   1071 	(ctf_dump_free): Likewise.
   1072 	(ctf_dump): Likewise.
   1073 	* ctf-open.c (upgrade_types_v1): Likewise.
   1074 	(init_types): Likewise.
   1075 	(ctf_file_close): Likewise.
   1076 	(ctf_bufopen_internal): Likewise.  Check for OOM.
   1077 	(ctf_parent_name_set): Likewise: report the OOM to the caller.
   1078 	(ctf_cuname_set): Likewise.
   1079 	(ctf_import): Likewise.
   1080 	* ctf-string.c (ctf_str_purge_atom_refs): Use malloc, not ctf_alloc;
   1081 	free, not ctf_free; strdup, not ctf_strdup.
   1082 	(ctf_str_free_atom): Likewise.
   1083 	(ctf_str_create_atoms): Likewise.
   1084 	(ctf_str_add_ref_internal): Likewise.
   1085 	(ctf_str_remove_ref): Likewise.
   1086 	(ctf_str_write_strtab): Likewise.
   1087 
   1088 2019-08-09  Nick Alcock  <nick.alcock (a] oracle.com>
   1089 
   1090 	* ctf-types.c (ctf_type_encoding): Fix the dynamic case to
   1091 	work right for non-int/fps.
   1092 
   1093 2019-08-08  Nick Alcock  <nick.alcock (a] oracle.com>
   1094 
   1095 	* ctf-types.c (ctf_type_name): Don't strlen a potentially-
   1096 	null pointer.
   1097 
   1098 2019-08-07  Nick Alcock  <nick.alcock (a] oracle.com>
   1099 
   1100 	* ctf-impl.h (ctf_file_t) <ctf_add_processing>: New.
   1101 	* ctf-open.c (ctf_file_close): Free it.
   1102 	* ctf-create.c (ctf_serialize): Adjust.
   1103 	(membcmp): When reporting a conflict due to an error, report the
   1104 	error.
   1105 	(ctf_add_type): Turn into a ctf_add_processing wrapper.  Rename to...
   1106 	(ctf_add_type_internal): ... this.  Hand back types we are already
   1107 	in the middle of adding immediately.  Hand back structs/unions with
   1108 	the same number of members immediately.  Do not walk the dynamic
   1109 	list.  Call ctf_add_type_internal, not ctf_add_type.  Handle
   1110 	forwards promoted to other types and the inverse case identically.
   1111 	Add structs to the mapping as soon as we intern them, before they
   1112 	gain any members.
   1113 
   1114 2019-08-09  Nick Alcock  <nick.alcock (a] oracle.com>
   1115 
   1116 	* ctf-impl.h (ctf_names_t): New.
   1117 	(ctf_lookup_t) <ctf_hash>: Now a ctf_names_t, not a ctf_hash_t.
   1118 	(ctf_file_t) <ctf_structs>: Likewise.
   1119 	<ctf_unions>: Likewise.
   1120 	<ctf_enums>: Likewise.
   1121 	<ctf_names>: Likewise.
   1122 	<ctf_lookups>: Improve comment.
   1123 	<ctf_ptrtab_len>: New.
   1124 	<ctf_prov_strtab>: New.
   1125 	<ctf_str_prov_offset>: New.
   1126 	<ctf_dtbyname>: Remove, redundant to the names hashes.
   1127 	<ctf_dtnextid>: Remove, redundant to ctf_typemax.
   1128 	(ctf_dtdef_t) <dtd_name>: Remove.
   1129 	<dtd_data>: Note that the ctt_name is now populated.
   1130 	(ctf_str_atom_t) <csa_offset>: This is now the strtab
   1131 	offset for internal strings too.
   1132 	<csa_external_offset>: New, the external strtab offset.
   1133 	(CTF_INDEX_TO_TYPEPTR): Handle the LCTF_RDWR case.
   1134 	(ctf_name_table): New declaration.
   1135 	(ctf_lookup_by_rawname): Likewise.
   1136 	(ctf_lookup_by_rawhash): Likewise.
   1137 	(ctf_set_ctl_hashes): Likewise.
   1138 	(ctf_serialize): Likewise.
   1139 	(ctf_dtd_insert): Adjust.
   1140 	(ctf_simple_open_internal): Likewise.
   1141 	(ctf_bufopen_internal): Likewise.
   1142 	(ctf_list_empty_p): Likewise.
   1143 	(ctf_str_remove_ref): Likewise.
   1144 	(ctf_str_add): Returns uint32_t now.
   1145 	(ctf_str_add_ref): Likewise.
   1146 	(ctf_str_add_external): Now returns a boolean (int).
   1147 	* ctf-string.c (ctf_strraw_explicit): Check the ctf_prov_strtab
   1148 	for strings in the appropriate range.
   1149 	(ctf_str_create_atoms): Create the ctf_prov_strtab.  Detect OOM
   1150 	when adding the null string to the new strtab.
   1151 	(ctf_str_free_atoms): Destroy the ctf_prov_strtab.
   1152 	(ctf_str_add_ref_internal): Add make_provisional argument.  If
   1153 	make_provisional, populate the offset and fill in the
   1154 	ctf_prov_strtab accordingly.
   1155 	(ctf_str_add): Return the offset, not the string.
   1156 	(ctf_str_add_ref): Likewise.
   1157 	(ctf_str_add_external): Return a success integer.
   1158 	(ctf_str_remove_ref): New, remove a single ref.
   1159 	(ctf_str_count_strtab): Do not count the initial null string's
   1160 	length or the existence or length of any unreferenced internal
   1161 	atoms.
   1162 	(ctf_str_populate_sorttab): Skip atoms with no refs.
   1163 	(ctf_str_write_strtab): Populate the nullstr earlier.  Add one
   1164 	to the cts_len for the null string, since it is no longer done
   1165 	in ctf_str_count_strtab.  Adjust for csa_external_offset rename.
   1166 	Populate the csa_offset for both internal and external cases.
   1167 	Flush the ctf_prov_strtab afterwards, and reset the
   1168 	ctf_str_prov_offset.
   1169 	* ctf-create.c (ctf_grow_ptrtab): New.
   1170 	(ctf_create): Call it.	Initialize new fields rather than old
   1171 	ones.  Tell ctf_bufopen_internal that this is a writable dictionary.
   1172 	Set the ctl hashes and data model.
   1173 	(ctf_update): Rename to...
   1174 	(ctf_serialize): ... this.  Leave a compatibility function behind.
   1175 	Tell ctf_simple_open_internal that this is a writable dictionary.
   1176 	Pass the new fields along from the old dictionary.  Drop
   1177 	ctf_dtnextid and ctf_dtbyname.	Use ctf_strraw, not dtd_name.
   1178 	Do not zero out the DTD's ctt_name.
   1179 	(ctf_prefixed_name): Rename to...
   1180 	(ctf_name_table): ... this.  No longer return a prefixed name: return
   1181 	the applicable name table instead.
   1182 	(ctf_dtd_insert): Use it, and use the right name table.	 Pass in the
   1183 	kind we're adding.  Migrate away from dtd_name.
   1184 	(ctf_dtd_delete): Adjust similarly.  Remove the ref to the
   1185 	deleted ctt_name.
   1186 	(ctf_dtd_lookup_type_by_name): Remove.
   1187 	(ctf_dynamic_type): Always return NULL on read-only dictionaries.
   1188 	No longer check ctf_dtnextid: check ctf_typemax instead.
   1189 	(ctf_snapshot): No longer use ctf_dtnextid: use ctf_typemax instead.
   1190 	(ctf_rollback): Likewise.  No longer fail with ECTF_OVERROLLBACK. Use
   1191 	ctf_name_table and the right name table, and migrate away from
   1192 	dtd_name as in ctf_dtd_delete.
   1193 	(ctf_add_generic): Pass in the kind explicitly and pass it to
   1194 	ctf_dtd_insert. Use ctf_typemax, not ctf_dtnextid.  Migrate away
   1195 	from dtd_name to using ctf_str_add_ref to populate the ctt_name.
   1196 	Grow the ptrtab if needed.
   1197 	(ctf_add_encoded): Pass in the kind.
   1198 	(ctf_add_slice): Likewise.
   1199 	(ctf_add_array): Likewise.
   1200 	(ctf_add_function): Likewise.
   1201 	(ctf_add_typedef): Likewise.
   1202 	(ctf_add_reftype): Likewise. Initialize the ctf_ptrtab, checking
   1203 	ctt_name rather than dtd_name.
   1204 	(ctf_add_struct_sized): Pass in the kind.  Use
   1205 	ctf_lookup_by_rawname, not ctf_hash_lookup_type /
   1206 	ctf_dtd_lookup_type_by_name.
   1207 	(ctf_add_union_sized): Likewise.
   1208 	(ctf_add_enum): Likewise.
   1209 	(ctf_add_enum_encoded): Likewise.
   1210 	(ctf_add_forward): Likewise.
   1211 	(ctf_add_type): Likewise.
   1212 	(ctf_compress_write): Call ctf_serialize: adjust for ctf_size not
   1213 	being initialized until after the call.
   1214 	(ctf_write_mem): Likewise.
   1215 	(ctf_write): Likewise.
   1216 	* ctf-archive.c (arc_write_one_ctf): Likewise.
   1217 	* ctf-lookup.c (ctf_lookup_by_name): Use ctf_lookuup_by_rawhash, not
   1218 	ctf_hash_lookup_type.
   1219 	(ctf_lookup_by_id): No longer check the readonly types if the
   1220 	dictionary is writable.
   1221 	* ctf-open.c (init_types): Assert that this dictionary is not
   1222 	writable.  Adjust to use the new name hashes, ctf_name_table,
   1223 	and ctf_ptrtab_len.  GNU style fix for the final ptrtab scan.
   1224 	(ctf_bufopen_internal): New 'writable' parameter.  Flip on LCTF_RDWR
   1225 	if set.	 Drop out early when dictionary is writable.  Split the
   1226 	ctf_lookups initialization into...
   1227 	(ctf_set_cth_hashes): ... this new function.
   1228 	(ctf_simple_open_internal): Adjust.  New 'writable' parameter.
   1229 	(ctf_simple_open): Adjust accordingly.
   1230 	(ctf_bufopen): Likewise.
   1231 	(ctf_file_close): Destroy the appropriate name hashes.	No longer
   1232 	destroy ctf_dtbyname, which is gone.
   1233 	(ctf_getdatasect): Remove spurious "extern".
   1234 	* ctf-types.c (ctf_lookup_by_rawname): New, look up types in the
   1235 	specified name table, given a kind.
   1236 	(ctf_lookup_by_rawhash): Likewise, given a ctf_names_t *.
   1237 	(ctf_member_iter): Add support for iterating over the
   1238 	dynamic type list.
   1239 	(ctf_enum_iter): Likewise.
   1240 	(ctf_variable_iter): Likewise.
   1241 	(ctf_type_rvisit): Likewise.
   1242 	(ctf_member_info): Add support for types in the dynamic type list.
   1243 	(ctf_enum_name): Likewise.
   1244 	(ctf_enum_value): Likewise.
   1245 	(ctf_func_type_info): Likewise.
   1246 	(ctf_func_type_args): Likewise.
   1247 	* ctf-link.c (ctf_accumulate_archive_names): No longer call
   1248 	ctf_update.
   1249 	(ctf_link_write): Likewise.
   1250 	(ctf_link_intern_extern_string): Adjust for new
   1251 	ctf_str_add_external return value.
   1252 	(ctf_link_add_strtab): Likewise.
   1253 	* ctf-util.c (ctf_list_empty_p): New.
   1254 
   1255 2019-08-05  Nick Alcock  <nick.alcock (a] oracle.com>
   1256 
   1257 	* ctf-types.c (ctf_type_resolve): Return ECTF_NONREPRESENTABLE on
   1258 	type zero.
   1259 	* ctf-create.c (ctf_add_type): Detect and skip nonrepresentable
   1260 	members and types.
   1261 	(ctf_add_variable): Likewise for variables pointing to them.
   1262 	* ctf-link.c (ctf_link_one_type): Do not warn for nonrepresentable
   1263 	type link failure, but do warn for others.
   1264 	* ctf-dump.c (ctf_dump_format_type): Likewise.  Do not assume all
   1265 	errors to be ENOMEM.
   1266 	(ctf_dump_member): Likewise.
   1267 	(ctf_dump_type): Likewise.
   1268 	(ctf_dump_header_strfield): Do not assume all errors to be ENOMEM.
   1269 	(ctf_dump_header_sectfield): Do not assume all errors to be ENOMEM.
   1270 	(ctf_dump_header): Likewise.
   1271 	(ctf_dump_label): likewise.
   1272 	(ctf_dump_objts): likewise.
   1273 	(ctf_dump_funcs): likewise.
   1274 	(ctf_dump_var): likewise.
   1275 	(ctf_dump_str): Likewise.
   1276 
   1277 2019-09-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1278 
   1279 	* configure.ac (AC_DISABLE_SHARED): New, like opcodes/.
   1280 	(LT_INIT): Likewise.
   1281 	(AM_INSTALL_LIBBFD): Likewise.
   1282 	(dlopen): Note why this is necessary in a comment.
   1283 	(SHARED_LIBADD): Initialize for possibly-PIC libiberty: derived from
   1284 	opcodes/.
   1285 	(SHARED_LDFLAGS): Likewise.
   1286 	(BFD_LIBADD): Likewise, for libbfd.
   1287 	(BFD_DEPENDENCIES): Likewise.
   1288 	(VERSION_FLAGS): Initialize, using a version script if ld supports
   1289 	one, or libtool -export-symbols-regex otherwise.
   1290 	(AC_CONFIG_MACRO_DIR): Add ../BFD.
   1291 	* Makefile.am (ACLOCAL_AMFLAGS): Likewise.
   1292 	(INCDIR): New.
   1293 	(AM_CPPFLAGS): Use $(srcdir), not $(top_srcdir).
   1294 	(noinst_LIBRARIES): Replace with...
   1295 	[INSTALL_LIBBFD] (lib_LTLIBRARIES): This, or...
   1296 	[!INSTALL_LIBBFD] (noinst_LTLIBRARIES): ... this, mentioning new
   1297 	libctf-nobfd.la as well.
   1298 	[INSTALL_LIBCTF] (include_HEADERS): Add the CTF headers.
   1299 	[!INSTALL_LIBCTF] (include_HEADERS): New, empty.
   1300 	(libctf_a_SOURCES): Rename to...
   1301 	(libctf_nobfd_la_SOURCES): ... this, all of libctf other than
   1302 	ctf-open-bfd.c.
   1303 	(libctf_la_SOURCES): Now derived from libctf_nobfd_la_SOURCES,
   1304 	with ctf-open-bfd.c added.
   1305 	(libctf_nobfd_la_LIBADD): New, using @SHARED_LIBADD@.
   1306 	(libctf_la_LIBADD): New, using @BFD_LIBADD@ as well.
   1307 	(libctf_la_DEPENDENCIES): New, using @BFD_DEPENDENCIES@.
   1308 	* Makefile.am [INSTALL_LIBCTF]: Use it.
   1309 	* aclocal.m4: Add ../bfd/acinclude.m4, ../config/acx.m4, and the
   1310 	libtool macros.
   1311 	* libctf.ver: New, everything is version LIBCTF_1.0 currently (even
   1312 	the unstable components).
   1313 	* Makefile.in: Regenerated.
   1314 	* config.h.in: Likewise.
   1315 	* configure: Likewise.
   1316 
   1317 2019-07-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1318 
   1319 	* configure.ac (INSTALL_LIBCTF): New, controlled by
   1320 	--enable-install-libctf.
   1321 	[INSTALL_LIBCTF] (lib_LIBRARIES): Add libctf.a.
   1322 	* Makefile.in: Regenerated.
   1323 	* configure: Regenerated.
   1324 
   1325 2019-07-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1326 
   1327 	* ctf-archive.c (ctf_arc_close): Call ctfi_bfd_close if set.
   1328 	* ctf-open-bfd.c (ctf_bfdclose): Fix comment.
   1329 
   1330 2019-07-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1331 
   1332 	* ctf-open-bfd.c (ctf_fdopen): Call bfd_set_cacheable.
   1333 
   1334 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1335 
   1336 	* ctf-impl.h (includes): Include <sys/param.h> here.
   1337 
   1338 2019-07-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1339 
   1340 	* ctf-open.c (flip_lbls): Eschew for-loop initial declarations.
   1341 	(flip_objts): Likewise.
   1342 	(flip_vars): Likewise.
   1343 	(flip_types): Likewise.
   1344 
   1345 2019-07-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1346 
   1347 	* ctf-hash.c (ctf_hashtab_insert): Pass in the key and value
   1348 	freeing functions: if set, free the key and value if the slot
   1349 	already exists.  Always reassign the key.
   1350 	(ctf_dynhash_insert): Adjust call appropriately.
   1351 	(ctf_hash_insert_type): Likewise.
   1352 
   1353 2019-08-03  Nick Alcock  <nick.alcock (a] oracle.com>
   1354 
   1355 	* ctf-create.c (ctf_add_type): Look up and use the forwarded-to
   1356 	type kind.  Allow forwards to unify with pre-existing structs/
   1357 	unions/enums.
   1358 
   1359 2019-07-30  Nick Alcock  <nick.alcock (a] oracle.com>
   1360 
   1361 	* ctf-impl.h (ctf_file_t) <ctf_link_cu_mappping>: New.
   1362 	<ctf_link_memb_name_changer>: Likewise.
   1363 	<ctf_link_memb_name_changer_arg>: Likewise.
   1364 	* ctf-create.c (ctf_update): Update accordingly.
   1365 	* ctf-open.c (ctf_file_close): Likewise.
   1366 	* ctf-link.c (ctf_create_per_cu): Apply the cu mapping.
   1367 	(ctf_link_add_cu_mapping): New.
   1368 	(ctf_link_set_memb_name_changer): Likewise.
   1369 	(ctf_change_parent_name): New.
   1370 	(ctf_name_list_accum_cb_arg_t) <dynames>: New, storage for names
   1371 	allocated by the caller's ctf_link_memb_name_changer.
   1372 	<ndynames>: Likewise.
   1373 	(ctf_accumulate_archive_names): Call the ctf_link_memb_name_changer.
   1374 	(ctf_link_write): Likewise (for _CTF_SECTION only): also call
   1375 	ctf_change_parent_name.  Free any resulting names.
   1376 
   1377 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1378 
   1379 	* ctf-link.c (ctf_create_per_cu): New, refactored out of...
   1380 	(ctf_link_one_type): ... here, with parent-name setting added.
   1381 	(check_variable): New.
   1382 	(ctf_link_one_variable): Likewise.
   1383 	(ctf_link_one_input_archive_member): Call it.
   1384 	* ctf-error.c (_ctf_errlist): Updated with new errors.
   1385 
   1386 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1387 
   1388 	* ctf-impl.h (ctf_file_t): New field ctf_link_type_mapping.
   1389 	(struct ctf_link_type_mapping_key): New.
   1390 	(ctf_hash_type_mapping_key): Likewise.
   1391 	(ctf_hash_eq_type_mapping_key): Likewise.
   1392 	(ctf_add_type_mapping): Likewise.
   1393 	(ctf_type_mapping): Likewise.
   1394 	(ctf_dynhash_empty): Likewise.
   1395 	* ctf-open.c (ctf_file_close): Update accordingly.
   1396 	* ctf-create.c (ctf_update): Likewise.
   1397 	(ctf_add_type): Populate the mapping.
   1398 	* ctf-hash.c (ctf_hash_type_mapping_key): Hash a type mapping key.
   1399 	(ctf_hash_eq_type_mapping_key): Check the key for equality.
   1400 	(ctf_dynhash_insert): Fix comment typo.
   1401 	(ctf_dynhash_empty): New.
   1402 	* ctf-link.c (ctf_add_type_mapping): New.
   1403 	(ctf_type_mapping): Likewise.
   1404 	(empty_link_type_mapping): New.
   1405 	(ctf_link_one_input_archive): Call it.
   1406 
   1407 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1408 
   1409 	* ctf-link.c: New file, linking of the string and type sections.
   1410 	* Makefile.am (libctf_a_SOURCES): Add it.
   1411 	* Makefile.in: Regenerate.
   1412 
   1413 	* ctf-impl.h (ctf_file_t): New fields ctf_link_inputs,
   1414 	ctf_link_outputs.
   1415 	* ctf-create.c (ctf_update): Update accordingly.
   1416 	* ctf-open.c (ctf_file_close): Likewise.
   1417 	* ctf-error.c (_ctf_errlist): Updated with new errors.
   1418 
   1419 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1420 
   1421 	* ctf-dump.c (ctf_dump_funcs): Check the right error value.
   1422 
   1423 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1424 
   1425 	* ctf-dump.c (ctf_dump): Use ctf_type_iter_all to dump types, not
   1426 	ctf_type_iter.
   1427 	(ctf_dump_type): Pass down the flag from ctf_type_iter_all.
   1428 	(ctf_dump_format_type): Add non-root-type { } notation.
   1429 	Add root flag to prototype.
   1430 	(ctf_dump_label): Adjust accordingly.
   1431 	(ctf_dump_objts): Likewise.
   1432 	(ctf_dump_var): Likewise.
   1433 
   1434 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1435 
   1436 	* ctf-create.c (ctf_compress_write): Fix double-free.
   1437 
   1438 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1439 
   1440 	* ctf-archive.c (ctf_arc_write): Split off, and reimplement in terms
   1441 	of...
   1442 	(ctf_arc_write_fd): ... this new function.
   1443 	* ctf-create.c (ctf_write_mem): New.
   1444 
   1445 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1446 
   1447 	* ctf-impl.h (ctf_str_atom_t) <csa_offset>: New field.
   1448 	(ctf_file_t) <ctf_syn_ext_strtab>: Likewise.
   1449 	(ctf_str_add_ref): Name the last arg.
   1450 	(ctf_str_add_external) New.
   1451 	(ctf_str_add_strraw_explicit): Likewise.
   1452 	(ctf_simple_open_internal): Likewise.
   1453 	(ctf_bufopen_internal): Likewise.
   1454 
   1455 	* ctf-string.c (ctf_strraw_explicit): Split from...
   1456 	(ctf_strraw): ... here, with new support for ctf_syn_ext_strtab.
   1457 	(ctf_str_add_ref_internal): Return the atom, not the
   1458 	string.
   1459 	(ctf_str_add): Adjust accordingly.
   1460 	(ctf_str_add_ref): Likewise.  Move up in the file.
   1461 	(ctf_str_add_external): New: update the csa_offset.
   1462 	(ctf_str_count_strtab): Only account for strings with no csa_offset
   1463 	in the internal strtab length.
   1464 	(ctf_str_write_strtab): If the csa_offset is set, update the
   1465 	string's refs without writing the string out, and update the
   1466 	ctf_syn_ext_strtab.  Make OOM handling less ugly.
   1467 	* ctf-create.c (struct ctf_sort_var_arg_cb): New.
   1468 	(ctf_update): Handle failure to populate the strtab.  Pass in the
   1469 	new ctf_sort_var arg.  Adjust for ctf_syn_ext_strtab addition.
   1470 	Call ctf_simple_open_internal, not ctf_simple_open.
   1471 	(ctf_sort_var): Call ctf_strraw_explicit rather than looking up
   1472 	strings by hand.
   1473 	* ctf-hash.c (ctf_hash_insert_type): Likewise (but using
   1474 	ctf_strraw).  Adjust to diagnose ECTF_STRTAB nonetheless.
   1475 	* ctf-open.c (init_types): No longer filter out ECTF_STRTAB.
   1476 	(ctf_file_close): Destroy the ctf_syn_ext_strtab.
   1477 	(ctf_simple_open): Rename to, and reimplement as a wrapper around...
   1478 	(ctf_simple_open_internal): ... this new function, which calls
   1479 	ctf_bufopen_internal.
   1480 	(ctf_bufopen): Rename to, and reimplement as a wrapper around...
   1481 	(ctf_bufopen_internal): ... this new function, which sets
   1482 	ctf_syn_ext_strtab.
   1483 
   1484 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1485 
   1486 	* ctf_types.c (ctf_type_iter_all): New.
   1487 
   1488 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1489 
   1490 	* ctf-open.c (init_symtab): Check for overflow against the right
   1491 	section.
   1492 	(upgrade_header): Set cth_objtidxoff, cth_funcidxoff to zero-length.
   1493 	(upgrade_types_v1): Note that these sections are not checked.
   1494 	(flip_header): Endian-swap the header fields.
   1495 	(flip_ctf): Endian-swap the sections.
   1496 	(flip_objts): Update comment.
   1497 	(ctf_bufopen): Check header offsets and alignment for validity.
   1498 
   1499 2019-07-13  Nick Alcock  <nick.alcock (a] oracle.com>
   1500 
   1501 	* ctf-open-bfd.c: Add <assert.h>.
   1502 	(ctf_bfdopen_ctfsect): Open string and symbol tables using
   1503 	techniques borrowed from bfd_elf_sym_name.
   1504 	(ctf_new_archive_internal): Improve comment.
   1505 	* ctf-archive.c (ctf_arc_close): Do not free the ctfi_strsect.
   1506 	* ctf-open.c (ctf_bufopen): Allow opening with a string section but
   1507 	no symbol section, but not vice versa.
   1508 
   1509 2019-07-08  Nick Alcock  <nick.alcock (a] oracle.com>
   1510 
   1511 	* ctf-impl.h (ctf_file_t): New field ctf_openflags.
   1512 	* ctf-open.c (ctf_bufopen): Set it.  No longer dump header offsets.
   1513 	* ctf-dump.c (dump_header): New function, dump the CTF header.
   1514 	(ctf_dump): Call it.
   1515 	(ctf_dump_header_strfield): New function.
   1516 	(ctf_dump_header_sectfield): Likewise.
   1517 
   1518 2019-07-06  Nick Alcock  <nick.alcock (a] oracle.com>
   1519 
   1520 	* ctf-impl.h (ctf_file_t): New fields ctf_header, ctf_dynbase,
   1521 	ctf_cuname, ctf_dyncuname: ctf_base and ctf_buf are no longer const.
   1522 	* ctf-open.c (ctf_set_base): Preserve the gap between ctf_buf and
   1523 	ctf_base: do not assume that it is always sizeof (ctf_header_t).
   1524 	Print out ctf_cuname: only print out ctf_parname if set.
   1525 	(ctf_free_base): Removed, ctf_base is no longer freed: free
   1526 	ctf_dynbase instead.
   1527 	(ctf_set_version): Fix spacing.
   1528 	(upgrade_header): New, in-place header upgrading.
   1529 	(upgrade_types): Rename to...
   1530 	(upgrade_types_v1): ... this.  Free ctf_dynbase, not ctf_base.  No
   1531 	longer track old and new headers separately.  No longer allow for
   1532 	header sizes explicitly: squeeze the headers out on upgrade (they
   1533 	are preserved in fp->ctf_header).  Set ctf_dynbase, ctf_base and
   1534 	ctf_buf explicitly.  Use ctf_free, not ctf_free_base.
   1535 	(upgrade_types): New, also handle ctf_parmax updating.
   1536 	(flip_header): Flip ctf_cuname.
   1537 	(flip_types): Flip BUF explicitly rather than deriving BUF from
   1538 	BASE.
   1539 	(ctf_bufopen): Store the header in fp->ctf_header.  Correct minimum
   1540 	required alignment of objtoff and funcoff.  No longer store it in
   1541 	the ctf_buf unless that buf is derived unmodified from the input.
   1542 	Set ctf_dynbase where ctf_base is dynamically allocated. Drop locals
   1543 	that duplicate fields in ctf_file: move allocation of ctf_file
   1544 	further up instead.  Call upgrade_header as needed.  Move
   1545 	version-specific ctf_parmax initialization into upgrade_types.  More
   1546 	concise error handling.
   1547 	(ctf_file_close): No longer test for null pointers before freeing.
   1548 	Free ctf_dyncuname, ctf_dynbase, and ctf_header.  Do not call
   1549 	ctf_free_base.
   1550 	(ctf_cuname): New.
   1551 	(ctf_cuname_set): New.
   1552 	* ctf-create.c (ctf_update): Populate ctf_cuname.
   1553 	(ctf_gzwrite): Write out the header explicitly.  Remove obsolescent
   1554 	comment.
   1555 	(ctf_write): Likewise.
   1556 	(ctf_compress_write): Get the header from ctf_header, not ctf_base.
   1557 	Fix the compression length: fp->ctf_size never counted the CTF
   1558 	header.  Simplify the compress call accordingly.
   1559 
   1560 2019-07-11  Hans-Peter Nilsson  <hp (a] bitrange.com>
   1561 
   1562 	* ctf-endian.h: Don't assume htole64 and le64toh are always
   1563 	present if HAVE_ENDIAN_H; also check if htole64 is defined.
   1564 	[!WORDS_BIGENDIAN] (htole64, le64toh): Define as identity,
   1565 	not bswap_identity_64.
   1566 
   1567 2019-09-18  Alan Modra  <amodra (a] gmail.com>
   1568 
   1569 	* ctf-open-bfd.c: Update throughout for bfd section macro changes.
   1570 
   1571 2019-09-09  Phil Blundell  <pb (a] pbcl.net>
   1572 
   1573 	binutils 2.33 branch created.
   1574 
   1575 2019-07-18  Nick Alcock  <nick.alcock (a] oracle.com>
   1576 
   1577 	* ctf-types.c (ctf_type_aname_raw): New.
   1578 	(ctf_func_type_info): Likewise.
   1579 	(ctf_func_type_args): Likewise.
   1580 	* ctf-error.c (_ctf_errlist): Fix description.
   1581 	* ctf-lookup.c: Fix file description.
   1582 
   1583 2019-06-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1584 
   1585 	* ctf-create.c (ctf_create): Fix off-by-one error.
   1586 
   1587 2019-06-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1588 
   1589 	* ctf-impl.h: (struct ctf_strs_writable): New, non-const version of
   1590 	struct ctf_strs.
   1591 	(struct ctf_dtdef): Note that dtd_data.ctt_name is unpopulated.
   1592 	(struct ctf_str_atom): New, disambiguated single string.
   1593 	(struct ctf_str_atom_ref): New, points to some other location that
   1594 	references this string's offset.
   1595 	(struct ctf_file): New members ctf_str_atoms and ctf_str_num_refs.
   1596 	Remove member ctf_dtvstrlen: we no longer track the total strlen
   1597 	as we add strings.
   1598 	(ctf_str_create_atoms): Declare new function in ctf-string.c.
   1599 	(ctf_str_free_atoms): Likewise.
   1600 	(ctf_str_add): Likewise.
   1601 	(ctf_str_add_ref): Likewise.
   1602 	(ctf_str_rollback): Likewise.
   1603 	(ctf_str_purge_refs): Likewise.
   1604 	(ctf_str_write_strtab): Likewise.
   1605 	(ctf_realloc): Declare new function in ctf-util.c.
   1606 
   1607 	* ctf-open.c (ctf_bufopen): Create the atoms table.
   1608 	(ctf_file_close): Destroy it.
   1609 	* ctf-create.c (ctf_update): Copy-and-free it on update.  No longer
   1610 	special-case the position of the parname string.  Construct the
   1611 	strtab by calling ctf_str_add_ref and ctf_str_write_strtab after the
   1612 	rest of each buffer element is constructed, not via open-coding:
   1613 	realloc the CTF buffer and append the strtab to it.  No longer
   1614 	maintain ctf_dtvstrlen.  Sort the variable entry table later, after
   1615 	strtab construction.
   1616 	(ctf_copy_membnames): Remove: integrated into ctf_copy_{s,l,e}members.
   1617 	(ctf_copy_smembers): Drop the string offset: call ctf_str_add_ref
   1618 	after buffer element construction instead.
   1619 	(ctf_copy_lmembers): Likewise.
   1620 	(ctf_copy_emembers): Likewise.
   1621 	(ctf_create): No longer maintain the ctf_dtvstrlen.
   1622 	(ctf_dtd_delete): Likewise.
   1623 	(ctf_dvd_delete): Likewise.
   1624 	(ctf_add_generic): Likewise.
   1625 	(ctf_add_enumerator): Likewise.
   1626 	(ctf_add_member_offset): Likewise.
   1627 	(ctf_add_variable): Likewise.
   1628 	(membadd): Likewise.
   1629 	* ctf-util.c (ctf_realloc): New, wrapper around realloc that aborts
   1630 	if there are active ctf_str_num_refs.
   1631 	(ctf_strraw): Move to ctf-string.c.
   1632 	(ctf_strptr): Likewise.
   1633 	* ctf-string.c: New file, strtab manipulation.
   1634 
   1635 	* Makefile.am (libctf_a_SOURCES): Add it.
   1636 	* Makefile.in: Regenerate.
   1637 
   1638 2019-06-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1639 
   1640 	* ctf-impl.h (ctf_hash_iter_f): New.
   1641 	(ctf_dynhash_iter): New declaration.
   1642 	(ctf_dynhash_iter_remove): New declaration.
   1643 	* ctf-hash.c (ctf_dynhash_iter): Define.
   1644 	(ctf_dynhash_iter_remove): Likewise.
   1645 	(ctf_hashtab_traverse): New.
   1646 	(ctf_hashtab_traverse_remove): Likewise.
   1647 	(struct ctf_traverse_cb_arg): Likewise.
   1648 	(struct ctf_traverse_remove_cb_arg): Likewise.
   1649 
   1650 2019-06-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1651 
   1652 	* ctf-hash.c (ctf_dynhash_remove): Call with a mocked-up element.
   1653 
   1654 2019-06-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1655 
   1656 	* ctf-dump.c (ctf_dump_format_type): Prefix hex strings with 0x.
   1657 	(ctf_dump_funcs): Likewise.
   1658 
   1659 2019-06-19  Nick Alcock  <nick.alcock (a] oracle.com>
   1660 
   1661 	* ctf-open-bfd.c: Add swap.h and ctf-endian.h.
   1662 	(ctf_fdopen): Check for endian-swapped raw CTF magic, and
   1663 	little-endian CTF archive magic.  Do not check the CTF version:
   1664 	ctf_simple_open does that in endian-safe ways.  Do not dereference
   1665 	null pointers on open failure.
   1666 
   1667 2019-06-19  Nick Alcock  <nick.alcock (a] oracle.com>
   1668 
   1669 	* ctf-open.c (get_vbytes_common): Return the new slice size.
   1670 	(ctf_bufopen): Flip the endianness of the CTF-section header copy.
   1671 	Remember to copy in the CTF data when opening an uncompressed
   1672 	foreign-endian CTF file.  Prune useless variable manipulation.
   1673 
   1674 2019-06-19  Nick Alcock  <nick.alcock (a] oracle.com>
   1675 
   1676 	* ctf-open.c (ctf_types): Fail when unidentified type kinds are
   1677 	seen.
   1678 
   1679 2019-06-19  Nick Alcock  <nick.alcock (a] oracle.com>
   1680 
   1681 	* ctf-open.c (ctf_bufopen): Dump header offsets into the debugging
   1682 	output.
   1683 
   1684 2019-06-19  Nick Alcock  <nick.alcock (a] oracle.com>
   1685 
   1686 	* ctf-subr.c (_PAGESIZE): Remove.
   1687 	(ctf_data_alloc): Likewise.
   1688 	(ctf_data_free): Likewise.
   1689 	(ctf_data_protect): Likewise.
   1690 	* ctf-impl.h: Remove declarations.
   1691 	* ctf-create.c (ctf_update): No longer call ctf_data_protect: use
   1692 	ctf_free, not ctf_data_free.
   1693 	(ctf_compress_write): Use ctf_data_alloc, not ctf_alloc.  Free
   1694 	the buffer again on compression error.
   1695 	* ctf-open.c (ctf_set_base): No longer track the size: call
   1696 	ctf_free, not ctf_data_free.
   1697 	(upgrade_types): Likewise.  Call ctf_alloc, not ctf_data_alloc.
   1698 	(ctf_bufopen): Likewise.  No longer call ctf_data_protect.
   1699 
   1700 2019-06-19  Nick Alcock  <nick.alcock (a] oracle.com>
   1701 
   1702 	* ctf-create.c (ctf_dtd_insert): Pass on error returns from
   1703 	ctf_dynhash_insert.
   1704 	(ctf_dvd_insert): Likewise.
   1705 	(ctf_add_generic): Likewise.
   1706 	(ctf_add_variable): Likewise.
   1707 	* ctf-impl.h: Adjust declarations.
   1708 
   1709 2019-06-14  Alan Modra  <amodra (a] gmail.com>
   1710 
   1711 	* configure: Regenerate.
   1712 
   1713 2019-06-06  Nick Alcock  <nick.alcock (a] oracle.com>
   1714 
   1715 	* ctf-decls.h: Include <libiberty.h>.
   1716 	* ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().
   1717 
   1718 2019-06-06  Nick Alcock  <nick.alcock (a] oracle.com>
   1719 
   1720 	* ctf-dump.c (ctf_dump_format_type): Cast size_t's used in printf()s.
   1721 	(ctf_dump_objts): Likewise.
   1722 	(ctf_dump_funcs): Likewise.
   1723 	(ctf_dump_member): Likewise.
   1724 	(ctf_dump_str): Likewise.
   1725 
   1726 2019-06-06  Nick Alcock  <nick.alcock (a] oracle.com>
   1727 
   1728 	* ctf-archive.c (arc_mmap_header): Mark fd as potentially unused.
   1729 	* ctf-subr.c (ctf_data_protect): Mark both args as potentially unused.
   1730 
   1731 2019-06-05  Nick Alcock  <nick.alcock (a] oracle.com>
   1732 
   1733 	* ctf-archive.c (ctf_arc_write): Eschew %zi format specifier.
   1734 	(ctf_arc_open_by_offset): Likewise.
   1735 	* ctf-create.c (ctf_add_type): Likewise.
   1736 
   1737 2019-06-04  Tom Tromey  <tromey (a] adacore.com>
   1738 
   1739 	* ctf-create.c (ctf_add_encoded, ctf_add_slice)
   1740 	(ctf_add_member_offset): Use CHAR_BIT, not NBBY.
   1741 
   1742 2019-06-04  Nick Alcock  <nick.alcock (a] oracle.com>
   1743 
   1744 	* configure.ac: Check for O_CLOEXEC.
   1745 	* ctf-decls.h (O_CLOEXEC): Define (to 0), if need be.
   1746 	* config.h.in: Regenerate.
   1747 	* configure: Likewise.
   1748 
   1749 2019-06-04  Nick Alcock  <nick.alcock (a] oracle.com>
   1750 
   1751 	* qsort_r.c: Rename to...
   1752 	* ctf-qsort_r.c: ... this.
   1753 	(_quicksort): Define to ctf_qsort_r.
   1754 	* ctf-decls.h (qsort_r): Remove.
   1755 	(ctf_qsort_r): Add.
   1756 	(struct ctf_qsort_arg): New, transport the real ARG and COMPAR.
   1757 	(ctf_qsort_compar_thunk): Rearrange the arguments to COMPAR.
   1758 	* Makefile.am (libctf_a_LIBADD): Remove.
   1759 	(libctf_a_SOURCES): New, add ctf-qsort_r.c.
   1760 	* ctf-archive.c (ctf_arc_write): Call ctf_qsort_r, not qsort_r.
   1761 	* ctf-create.c (ctf_update): Likewise.
   1762 	* configure.ac: Check for BSD versus GNU qsort_r signature.
   1763 	* Makefile.in: Regenerate.
   1764 	* config.h.in: Likewise.
   1765 	* configure: Likewise.
   1766 
   1767 2019-06-03  Nick Alcock  <nick.alcock (a] oracle.com>
   1768 
   1769 	* ctf-dump.c (ctf_dump_funcs): Free in the right place.
   1770 
   1771 2019-05-29  Nick Alcock  <nick.alcock (a] oracle.com>
   1772 
   1773 	* Makefile.am (ZLIB): New.
   1774 	(ZLIBINC): Likewise.
   1775 	(AM_CFLAGS): Use them.
   1776 	(libctf_a_LIBADD): New, for LIBOBJS.
   1777 	* configure.ac: Check for zlib, endian.h, and qsort_r.
   1778 	* ctf-endian.h: New, providing htole64 and le64toh.
   1779 	* swap.h: Code style fixes.
   1780 	(bswap_identity_64): New.
   1781 	* qsort_r.c: New, from gnulib (with one added #include).
   1782 	* ctf-decls.h: New, providing a conditional qsort_r declaration,
   1783 	and unconditional definitions of MIN and MAX.
   1784 	* ctf-impl.h: Use it.  Do not use <sys/errno.h>.
   1785 	(ctf_set_errno): Now returns unsigned long.
   1786 	* ctf-util.c (ctf_set_errno): Adjust here too.
   1787 	* ctf-archive.c: Use ctf-endian.h.
   1788 	(ctf_arc_open_by_offset): Use memset, not bzero.  Drop cts_type,
   1789 	cts_flags and cts_offset.
   1790 	(ctf_arc_write): Drop debugging dependent on the size of off_t.
   1791 	* ctf-create.c: Provide a definition of roundup if not defined.
   1792 	(ctf_create): Drop cts_type, cts_flags and cts_offset.
   1793 	(ctf_add_reftype): Do not check if type IDs are below zero.
   1794 	(ctf_add_slice): Likewise.
   1795 	(ctf_add_typedef): Likewise.
   1796 	(ctf_add_member_offset): Cast error-returning ssize_t's to size_t
   1797 	when known error-free.  Drop CTF_ERR usage for functions returning
   1798 	int.
   1799 	(ctf_add_member_encoded): Drop CTF_ERR usage for functions returning
   1800 	int.
   1801 	(ctf_add_variable): Likewise.
   1802 	(enumcmp): Likewise.
   1803 	(enumadd): Likewise.
   1804 	(membcmp): Likewise.
   1805 	(ctf_add_type): Likewise.  Cast error-returning ssize_t's to size_t
   1806 	when known error-free.
   1807 	* ctf-dump.c (ctf_is_slice): Drop CTF_ERR usage for functions
   1808 	returning int: use CTF_ERR for functions returning ctf_type_id.
   1809 	(ctf_dump_label): Likewise.
   1810 	(ctf_dump_objts): Likewise.
   1811 	* ctf-labels.c (ctf_label_topmost): Likewise.
   1812 	(ctf_label_iter): Likewise.
   1813 	(ctf_label_info): Likewise.
   1814 	* ctf-lookup.c (ctf_func_args): Likewise.
   1815 	* ctf-open.c (upgrade_types): Cast to size_t where appropriate.
   1816 	(ctf_bufopen): Likewise.  Use zlib types as needed.
   1817 	* ctf-types.c (ctf_member_iter): Drop CTF_ERR usage for functions
   1818 	returning int.
   1819 	(ctf_enum_iter): Likewise.
   1820 	(ctf_type_size): Likewise.
   1821 	(ctf_type_align): Likewise.  Cast to size_t where appropriate.
   1822 	(ctf_type_kind_unsliced): Likewise.
   1823 	(ctf_type_kind): Likewise.
   1824 	(ctf_type_encoding): Likewise.
   1825 	(ctf_member_info): Likewise.
   1826 	(ctf_array_info): Likewise.
   1827 	(ctf_enum_value): Likewise.
   1828 	(ctf_type_rvisit): Likewise.
   1829 	* ctf-open-bfd.c (ctf_bfdopen): Drop cts_type, cts_flags and
   1830 	cts_offset.
   1831 	(ctf_simple_open): Likewise.
   1832 	(ctf_bfdopen_ctfsect): Likewise.  Set cts_size properly.
   1833 	* Makefile.in: Regenerate.
   1834 	* aclocal.m4: Likewise.
   1835 	* config.h: Likewise.
   1836 	* configure: Likewise.
   1837 
   1838 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1839 
   1840 	* configure.in: Check for bfd_section_from_elf_index.
   1841 	* configure: Regenerate.
   1842 	* config.h.in [HAVE_BFD_ELF]: Likewise.
   1843 	* libctf/ctf-open-bfd.c (ctf_bfdopen_ctfsect): Use it.
   1844 	abfd is potentially unused now.
   1845 
   1846 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1847 
   1848 	* Makefile.am: New.
   1849 	* Makefile.in: Regenerated.
   1850 	* config.h.in: Likewise.
   1851 	* aclocal.m4: Likewise.
   1852 	* configure: Likewise.
   1853 
   1854 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1855 
   1856 	* ctf-dump.c: New.
   1857 
   1858 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1859 
   1860 	* ctf-labels.c: New.
   1861 
   1862 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1863 
   1864 	* ctf-impl.h (_libctf_version): New declaration.
   1865 	* ctf-subr.c (_libctf_version): Define it.
   1866 	(ctf_version): New.
   1867 
   1868 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1869 
   1870 	* ctf-create.c (enumcmp): New.
   1871 	(enumadd): Likewise.
   1872 	(membcmp): Likewise.
   1873 	(membadd): Likewise.
   1874 	(ctf_add_type): Likewise.
   1875 
   1876 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1877 
   1878 	* ctf-lookup.c (isqualifier): New.
   1879 	(ctf_lookup_by_name): Likewise.
   1880 	(struct ctf_lookup_var_key): Likewise.
   1881 	(ctf_lookup_var): Likewise.
   1882 	(ctf_lookup_variable): Likewise.
   1883 	(ctf_lookup_symbol_name): Likewise.
   1884 	(ctf_lookup_by_symbol): Likewise.
   1885 	(ctf_func_info): Likewise.
   1886 	(ctf_func_args): Likewise.
   1887 
   1888 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1889 
   1890 	* ctf-decl.c: New file.
   1891 	* ctf-types.c: Likewise.
   1892 	* ctf-impl.h: New declarations.
   1893 
   1894 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1895 
   1896 	* ctf-open-bfd.c: New file.
   1897 	* ctf-open.c (ctf_close): New.
   1898 	* ctf-impl.h: Include bfd.h.
   1899 	(ctf_file): New members ctf_data_mmapped, ctf_data_mmapped_len.
   1900 	(ctf_archive_internal): New members ctfi_abfd, ctfi_data,
   1901 	ctfi_bfd_close.
   1902 	(ctf_bfdopen_ctfsect): New declaration.
   1903 	(_CTF_SECTION): likewise.
   1904 
   1905 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1906 
   1907 	* ctf-archive.c: New.
   1908 	* ctf-impl.h (ctf_archive_internal): New type.
   1909 	(ctf_arc_open_internal): New declaration.
   1910 	(ctf_arc_bufopen): Likewise.
   1911 	(ctf_arc_close_internal): Likewise.
   1912 
   1913 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1914 
   1915 	* ctf-open.c: New file.
   1916 	* swap.h: Likewise.
   1917 
   1918 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1919 
   1920 	* ctf-create.c: New file.
   1921 	* ctf-lookup.c: New file.
   1922 
   1923 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1924 
   1925 	* ctf-impl.h: New definitions and declarations for type creation
   1926 	and lookup.
   1927 
   1928 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1929 
   1930 	* ctf-hash.c: New file.
   1931 	* ctf-impl.h: New declarations.
   1932 
   1933 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1934 
   1935 	* ctf-error.c: New file.
   1936 
   1937 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1938 
   1939 	* ctf-util.c: New file.
   1940 	* elf.h: Likewise.
   1941 	* ctf-impl.h: Include it, and add declarations.
   1942 
   1943 2019-05-28  Nick Alcock  <nick.alcock (a] oracle.com>
   1944 
   1945 	* ctf-impl.h: New file.
   1946 	* ctf-subr.c: New file.
   1947 
   1948 
   1950 Local Variables:
   1951 mode: change-log
   1952 left-margin: 8
   1953 fill-column: 76
   1954 version-control: never
   1955 End:
   1956