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