libctf, decl: avoid leaks of the formatted string on error
[deliverable/binutils-gdb.git] / libctf / ChangeLog
1 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
2
3 * ctf-decl.c (ctf_decl_fini): Free the cd_buf.
4 (ctf_decl_buf): Once it escapes, don't try to free it later.
5
6 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
7
8 * ctf-types.c (ctf_type_aname): Print arg types here...
9 * ctf-dump.c (ctf_dump_funcs): ... not here: but do substitute
10 in the type name here.
11
12 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
13
14 * ctf-impl.h (ctf_assert): New.
15 (ctf_err_warning_t): Likewise.
16 (ctf_file_t) <ctf_errs_warnings>: Likewise.
17 (ctf_err_warn): New prototype.
18 (ctf_assert_fail_internal): Likewise.
19 * ctf-inlines.h (ctf_assert_internal): Likewise.
20 * ctf-open.c (ctf_file_close): Free ctf_errs_warnings.
21 * ctf-create.c (ctf_serialize): Copy it on serialization.
22 * ctf-subr.c (ctf_err_warn): New, add an error/warning.
23 (ctf_errwarning_next): New iterator, free and pass back
24 errors/warnings in succession.
25 * libctf.ver (ctf_errwarning_next): Add.
26
27 2020-07-22 Egeyar Bagcioglu <egeyar.bagcioglu@oracle.com>
28
29 * ctf-types.c (ctf_variable_iter): Fix error return.
30
31 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
32
33 * ctf-open.c (ctf_bufopen_internal): Diagnose invalid flags.
34
35 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
36
37 ctf-decls.h (ctf_qsort_compar_thunk): Fix arg passing.
38
39 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
40
41 * ctf-impl.h (ctf_next_hkv_t): New, kv-pairs passed to
42 sorting functions.
43 (ctf_next_t) <u.ctn_sorted_hkv>: New, sorted kv-pairs for
44 ctf_dynhash_next_sorted.
45 <cu.ctn_h>: New, pointer to the dynhash under iteration.
46 <cu.ctn_s>: New, pointer to the dynset under iteration.
47 (ctf_hash_sort_f): Sorting function passed to...
48 (ctf_dynhash_next_sorted): ... this new function.
49 (ctf_dynhash_next): New.
50 (ctf_dynset_next): New.
51 * ctf-inlines.h (ctf_dynhash_cnext_sorted): New.
52 (ctf_dynhash_cnext): New.
53 (ctf_dynset_cnext): New.
54 * ctf-hash.c (ctf_dynhash_next_sorted): New.
55 (ctf_dynhash_next): New.
56 (ctf_dynset_next): New.
57 * ctf-util.c (ctf_next_destroy): Free the u.ctn_sorted_hkv if
58 needed.
59 (ctf_next_copy): Alloc-and-copy the u.ctn_sorted_hkv if needed.
60
61 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
62
63 * ctf-impl.h (ctf_next): New.
64 (ctf_get_dict): New prototype.
65 * ctf-lookup.c (ctf_get_dict): New, split out of...
66 (ctf_lookup_by_id): ... here.
67 * ctf-util.c (ctf_next_create): New.
68 (ctf_next_destroy): New.
69 (ctf_next_copy): New.
70 * ctf-types.c (includes): Add <assert.h>.
71 (ctf_member_next): New.
72 (ctf_enum_next): New.
73 (ctf_type_iter): Document the lack of iteration over parent
74 types.
75 (ctf_type_next): New.
76 (ctf_variable_next): New.
77 * ctf-archive.c (ctf_archive_next): New.
78 * libctf.ver: Add new public functions.
79
80 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
81
82 * libctf.ver (ctf_ref): New.
83 * ctf-open.c (ctf_ref): Implement it.
84
85 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
86
87 * ctf-inlines.h (ctf_forwardable_kind): New.
88 * ctf-create.c (ctf_add_forward): Use it.
89
90 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
91
92 * ctf-impl.h (ctf_get_ctt_size): Move definition from here...
93 * ctf-inlines.h (ctf_get_ctt_size): ... to here.
94
95 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
96
97 * ctf-hash.c (ctf_dynset_eq_string): New.
98 (ctf_dynset_create): New.
99 (DYNSET_EMPTY_ENTRY_REPLACEMENT): New.
100 (DYNSET_DELETED_ENTRY_REPLACEMENT): New.
101 (key_to_internal): New.
102 (internal_to_key): New.
103 (ctf_dynset_insert): New.
104 (ctf_dynset_remove): New.
105 (ctf_dynset_destroy): New.
106 (ctf_dynset_lookup): New.
107 (ctf_dynset_exists): New.
108 (ctf_dynset_lookup_any): New.
109 (ctf_hash_insert_type): Coding style.
110 (ctf_hash_define_type): Likewise.
111 * ctf-impl.h (ctf_dynset_t): New.
112 (ctf_dynset_eq_string): New.
113 (ctf_dynset_create): New.
114 (ctf_dynset_insert): New.
115 (ctf_dynset_remove): New.
116 (ctf_dynset_destroy): New.
117 (ctf_dynset_lookup): New.
118 (ctf_dynset_exists): New.
119 (ctf_dynset_lookup_any): New.
120 * ctf-inlines.h (ctf_dynset_cinsert): New.
121
122 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
123
124 * ctf-hash.c (ctf_helem_t) <key_free>: Remove.
125 <value_free>: Likewise.
126 <owner>: New.
127 (ctf_dynhash_item_free): Indirect through the owner.
128 (ctf_dynhash_create): Only pass in ctf_dynhash_item_free and
129 allocate space for the key_free and value_free fields fields
130 if necessary.
131 (ctf_hashtab_insert): Likewise. Fix OOM errno value.
132 (ctf_dynhash_insert): Only access ctf_hashtab's key_free and
133 value_free if they will exist. Set the slot's owner, but only
134 if it exists.
135 (ctf_dynhash_remove): Adjust.
136
137 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
138
139 * ctf-hash.c (ctf_hashtab_insert): Free the key passed in if
140 there is a key-freeing function and the key already exists.
141
142 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
143
144 * ctf-inlines.h: New file.
145 * ctf-impl.h: Include it.
146 (ctf_hash_iter_find_f): New typedef.
147 (ctf_dynhash_elements): New.
148 (ctf_dynhash_lookup_kv): New.
149 (ctf_dynhash_iter_find): New.
150 * ctf-hash.c (ctf_dynhash_lookup_kv): New.
151 (ctf_traverse_find_cb_arg_t): New.
152 (ctf_hashtab_traverse_find): New.
153 (ctf_dynhash_iter_find): New.
154 (ctf_dynhash_elements): New.
155
156 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
157
158 * ctf-impl.h [!__GNUC__] (__extension__): Define to nothing.
159
160 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
161
162 * ctf-archive.c (ctf_archive_count): New.
163 * libctf.ver: New public function.
164
165 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
166
167 * ctf-types.c (ctf_member_count): New.
168 * libctf.ver: New public function.
169
170 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
171
172 * ctf-types.c (ctf_type_kind_forwarded): New.
173
174 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
175
176 * ctf-types.c (ctf_type_name_raw): New.
177 (ctf_type_aname_raw): Reimplement accordingly.
178
179 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
180
181 * ctf-subr.c (ctf_dprintf): _libctf_debug is unlikely to be set.
182
183 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
184
185 * ctf-impl.h (struct ctf_archive_internal)
186 <ctfi_unmap_on_close>: New.
187 (ctf_new_archive_internal): Adjust.
188 * ctf-archive.c (ctf_new_archive_internal): Likewise.
189 Initialize ctfi_unmap_on_close. Adjust error path.
190 (ctf_arc_bufopen): Adjust ctf_new_archive_internal call
191 (unmap_on_close is 0).
192 (ctf_arc_close): Only unmap if ctfi_unmap_on_close.
193 * ctf-open-bfd.c (ctf_fdopen): Adjust.
194
195 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
196
197 * ctf-types.c (ctf_type_aname): Return ECTF_CORRUPT if
198 ints, floats or typedefs have no name. Fix comment typo.
199
200 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
201
202 * ctf-create.c (ctf_add_slice): Support slices of any kind that
203 resolves to an integral type.
204 * ctf-types.c (ctf_type_encoding): Resolve the type before
205 fishing its encoding out.
206
207 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
208
209 * ctf-create.c (ctf_create): Mark dirty.
210
211 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
212
213 * ctf-create.c (membcmp) Skip nameless members.
214
215 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
216
217 * ctf-create.c (ctf_add_member_offset): Support names of ""
218 as if they were the null pointer.
219
220 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
221
222 * ctf-open.c (init_types): Remove typeless CTF_K_FORWARD
223 special-casing.
224
225 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
226
227 * ctf-types.c (ctf_type_reference): Add support for dynamic slices.
228
229 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
230
231 * ctf-create.c (ctf_serialize): Add cast.
232 (ctf_add_slice): Likewise.
233
234 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
235
236 * ctf-impl.h (ctf_dtdef_t) <dtu_argv>: Fix type.
237 * ctf-create.c (ctf_add_function): Check for unimplemented type
238 and populate at the same time. Populate one-by-one, not via
239 memcpy.
240 (ctf_serialize): Remove unnecessary cast.
241 * ctf-types.c (ctf_func_type_info): Likewise.
242 (ctf_func_type_args): Likewise. Fix comment typo.
243
244 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
245
246 * ctf-create.c (ctf_add_reftype): Support refs to type zero.
247 (ctf_add_array): Support array contents of type zero.
248 (ctf_add_function): Support arguments and return types of
249 type zero.
250 (ctf_add_typedef): Support typedefs to type zero.
251 (ctf_add_member_offset): Support members of type zero,
252 unless added at unspecified (naturally-aligned) offset.
253
254 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
255
256 * ctf-error.c: Include <stddef.h>, for offsetof.
257 (_ctf_errlist): Migrate to...
258 (_ctf_errlist_t): ... this.
259 (_ctf_erridx): New, indexes into _ctf_errlist_t.
260 (_ctf_nerr): Remove.
261 (ctf_errmsg): Adjust accordingly.
262 * Makefile.am (BUILT_SOURCES): Note...
263 (ctf-error.h): ... this new rule.
264 * Makefile.in: Regenerate.
265 * mkerrors.sed: New, process ctf-api.h to generate ctf-error.h.
266 * .gitignore: New, ignore ctf-error.h.
267
268 2020-07-22 Nick Alcock <nick.alcock@oracle.com>
269
270 * ctf-impl.h: Fix typos in comments.
271
272 2020-07-22 Nick Clifton <nickc@redhat.com>
273
274 * ctf-archive.c (ctf_arc_write): Avoid calling close twice on the
275 same file descriptor.
276
277 2020-07-04 Nick Clifton <nickc@redhat.com>
278
279 Binutils 2.35 branch created.
280
281 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
282
283 * aclocal.m4: Add config/gettext-sister.m4: Shuffle into
284 alphabetical order.
285 * configure.ac: Add ZW_GNU_GETTEXT_SISTER_DIR.
286 * config.h.in: Regenerated.
287 * Makefile.in: Likewise.
288 * configure: Likewise.
289
290 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
291
292 * ctf-create.c: Include <unistd.h>.
293 * ctf-open-bfd.c: Likewise.
294
295 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
296
297 PR libctf/25120
298 * configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls.
299 * swap.h (bswap_16): Do not assume that presence of <byteswap.h>
300 means this is declared.
301 (bswap_32): Likewise.
302 (bswap_64): Likewise.
303 (bswap_identity_64): Remove, unused.
304 * configure: Regenerated.
305 * config.h.in: Likewise.
306
307 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
308
309 PR libctf/25120
310 * ctf-impl.h (_libctf_printflike_): Add non-GNU-C fallback.
311 (_libctf_unlikely_): Likewise.
312 (_libctf_unused): Likewise.
313 (_libctf_malloc_): Likewise.
314
315 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
316
317 PR libctf/25120
318 * ctf-archive.c (search_nametbl): No longer global: declare...
319 (ctf_arc_open_by_name_internal): ... here. Use bsearch_r.
320 (search_modent_by_name): Take and use ARG for the nametbl.
321
322 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
323
324 * ctf-impl.h (ctf_new_archive_internal): Declare.
325 (ctf_arc_bufopen): Remove.
326 (ctf_archive_internal) <ctfi_free_symsect>: New.
327 * ctf-archive.c (ctf_arc_close): Use it.
328 (ctf_arc_bufopen): Fuse into...
329 (ctf_new_archive_internal): ... this, moved across from...
330 * ctf-open-bfd.c: ... here.
331 (ctf_bfdopen_ctfsect): Use ctf_arc_bufopen.
332 * libctf.ver: Add it.
333
334 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
335
336 * ctf-create.c (ctf_add_forward): Intern in the right namespace.
337 (ctf_dtd_delete): Remove correspondingly.
338 (ctf_rollback): Likewise.
339
340 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
341
342 * ctf-create.c (ctf_add_type_internal): Hand back existing types
343 unchanged.
344
345 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
346
347 * ctf-create.c (ctf_add_forward): Don't add forwards to
348 types that already exist.
349
350 2020-06-26 Nick Alcock <nick.alcock@oracle.com>
351
352 * ctf-open.c (init_types): Only intern root-visible types.
353 * ctf-create.c (ctf_dtd_insert): Likewise.
354 (ctf_dtd_delete): Only remove root-visible types.
355 (ctf_rollback): Likewise.
356 (ctf_add_generic): Adjust.
357 (ctf_add_struct_sized): Adjust comment.
358 (ctf_add_union_sized): Likewise.
359 (ctf_add_enum): Likewise.
360 * ctf-impl.h (ctf_dtd_insert): Adjust prototype.
361
362 2020-03-11 John Baldwin <jhb@FreeBSD.org>
363
364 * swap.h (bswap_identity_64): Make static.
365
366 2020-01-18 Nick Clifton <nickc@redhat.com>
367
368 Binutils 2.34 branch created.
369
370 2020-01-05 Joel Brobecker <brobecker@adacore.com>
371
372 PR binutils/25155:
373 * configure.ac: Add AC_CHECK_DECLS([asprintf]).
374 * configure, config.h.in: Regenerate.
375
376 2020-01-01 Alan Modra <amodra@gmail.com>
377
378 Update year range in copyright notice of all files.
379
380 2019-10-16 Simon Marchi <simon.marchi@polymtl.ca>
381
382 * swap.h (bswap_16, bswap_32, bswap_64): Make static.
383
384 2019-09-30 Nick Alcock <nick.alcock@oracle.com>
385
386 * ctf-open.c (ctf_bufopen_internal): Fix tabdamage.
387 * ctf-types.c (ctf_type_lname): Likewise.
388
389 2019-09-23 Nick Alcock <nick.alcock@oracle.com>
390
391 * ctf-open.c (ctf_import): Do not leak a ctf_file_t ref on every
392 ctf_import after the first for a given file.
393
394 2019-09-23 Nick Alcock <nick.alcock@oracle.com>
395
396 * ctf-impl.h (ctf_str_append_noerr): Declare.
397 * ctf-util.c (ctf_str_append_noerr): Define in terms of
398 ctf_str_append.
399 * ctf-dump.c (str_append): New, call it.
400 (ctf_dump_format_type): Use str_append, not ctf_str_append.
401 (ctf_dump_label): Likewise.
402 (ctf_dump_objts): Likewise.
403 (ctf_dump_funcs): Likewise.
404 (ctf_dump_var): Likewise.
405 (ctf_dump_member): Likewise.
406 (ctf_dump_type): Likewise.
407 (ctf_dump): Likewise.
408
409 2019-09-23 Nick Alcock <nick.alcock@oracle.com>
410
411 * ctf-impl.h (ctf_alloc): Remove.
412 (ctf_free): Likewise.
413 (ctf_strdup): Likewise.
414 * ctf-subr.c (ctf_alloc): Remove.
415 (ctf_free): Likewise.
416 * ctf-util.c (ctf_strdup): Remove.
417
418 * ctf-create.c (ctf_serialize): Use malloc, not ctf_alloc; free, not
419 ctf_free; strdup, not ctf_strdup.
420 (ctf_dtd_delete): Likewise.
421 (ctf_dvd_delete): Likewise.
422 (ctf_add_generic): Likewise.
423 (ctf_add_function): Likewise.
424 (ctf_add_enumerator): Likewise.
425 (ctf_add_member_offset): Likewise.
426 (ctf_add_variable): Likewise.
427 (membadd): Likewise.
428 (ctf_compress_write): Likewise.
429 (ctf_write_mem): Likewise.
430 * ctf-decl.c (ctf_decl_push): Likewise.
431 (ctf_decl_fini): Likewise.
432 (ctf_decl_sprintf): Likewise. Check for OOM.
433 * ctf-dump.c (ctf_dump_append): Use malloc, not ctf_alloc; free, not
434 ctf_free; strdup, not ctf_strdup.
435 (ctf_dump_free): Likewise.
436 (ctf_dump): Likewise.
437 * ctf-open.c (upgrade_types_v1): Likewise.
438 (init_types): Likewise.
439 (ctf_file_close): Likewise.
440 (ctf_bufopen_internal): Likewise. Check for OOM.
441 (ctf_parent_name_set): Likewise: report the OOM to the caller.
442 (ctf_cuname_set): Likewise.
443 (ctf_import): Likewise.
444 * ctf-string.c (ctf_str_purge_atom_refs): Use malloc, not ctf_alloc;
445 free, not ctf_free; strdup, not ctf_strdup.
446 (ctf_str_free_atom): Likewise.
447 (ctf_str_create_atoms): Likewise.
448 (ctf_str_add_ref_internal): Likewise.
449 (ctf_str_remove_ref): Likewise.
450 (ctf_str_write_strtab): Likewise.
451
452 2019-08-09 Nick Alcock <nick.alcock@oracle.com>
453
454 * ctf-types.c (ctf_type_encoding): Fix the dynamic case to
455 work right for non-int/fps.
456
457 2019-08-08 Nick Alcock <nick.alcock@oracle.com>
458
459 * ctf-types.c (ctf_type_name): Don't strlen a potentially-
460 null pointer.
461
462 2019-08-07 Nick Alcock <nick.alcock@oracle.com>
463
464 * ctf-impl.h (ctf_file_t) <ctf_add_processing>: New.
465 * ctf-open.c (ctf_file_close): Free it.
466 * ctf-create.c (ctf_serialize): Adjust.
467 (membcmp): When reporting a conflict due to an error, report the
468 error.
469 (ctf_add_type): Turn into a ctf_add_processing wrapper. Rename to...
470 (ctf_add_type_internal): ... this. Hand back types we are already
471 in the middle of adding immediately. Hand back structs/unions with
472 the same number of members immediately. Do not walk the dynamic
473 list. Call ctf_add_type_internal, not ctf_add_type. Handle
474 forwards promoted to other types and the inverse case identically.
475 Add structs to the mapping as soon as we intern them, before they
476 gain any members.
477
478 2019-08-09 Nick Alcock <nick.alcock@oracle.com>
479
480 * ctf-impl.h (ctf_names_t): New.
481 (ctf_lookup_t) <ctf_hash>: Now a ctf_names_t, not a ctf_hash_t.
482 (ctf_file_t) <ctf_structs>: Likewise.
483 <ctf_unions>: Likewise.
484 <ctf_enums>: Likewise.
485 <ctf_names>: Likewise.
486 <ctf_lookups>: Improve comment.
487 <ctf_ptrtab_len>: New.
488 <ctf_prov_strtab>: New.
489 <ctf_str_prov_offset>: New.
490 <ctf_dtbyname>: Remove, redundant to the names hashes.
491 <ctf_dtnextid>: Remove, redundant to ctf_typemax.
492 (ctf_dtdef_t) <dtd_name>: Remove.
493 <dtd_data>: Note that the ctt_name is now populated.
494 (ctf_str_atom_t) <csa_offset>: This is now the strtab
495 offset for internal strings too.
496 <csa_external_offset>: New, the external strtab offset.
497 (CTF_INDEX_TO_TYPEPTR): Handle the LCTF_RDWR case.
498 (ctf_name_table): New declaration.
499 (ctf_lookup_by_rawname): Likewise.
500 (ctf_lookup_by_rawhash): Likewise.
501 (ctf_set_ctl_hashes): Likewise.
502 (ctf_serialize): Likewise.
503 (ctf_dtd_insert): Adjust.
504 (ctf_simple_open_internal): Likewise.
505 (ctf_bufopen_internal): Likewise.
506 (ctf_list_empty_p): Likewise.
507 (ctf_str_remove_ref): Likewise.
508 (ctf_str_add): Returns uint32_t now.
509 (ctf_str_add_ref): Likewise.
510 (ctf_str_add_external): Now returns a boolean (int).
511 * ctf-string.c (ctf_strraw_explicit): Check the ctf_prov_strtab
512 for strings in the appropriate range.
513 (ctf_str_create_atoms): Create the ctf_prov_strtab. Detect OOM
514 when adding the null string to the new strtab.
515 (ctf_str_free_atoms): Destroy the ctf_prov_strtab.
516 (ctf_str_add_ref_internal): Add make_provisional argument. If
517 make_provisional, populate the offset and fill in the
518 ctf_prov_strtab accordingly.
519 (ctf_str_add): Return the offset, not the string.
520 (ctf_str_add_ref): Likewise.
521 (ctf_str_add_external): Return a success integer.
522 (ctf_str_remove_ref): New, remove a single ref.
523 (ctf_str_count_strtab): Do not count the initial null string's
524 length or the existence or length of any unreferenced internal
525 atoms.
526 (ctf_str_populate_sorttab): Skip atoms with no refs.
527 (ctf_str_write_strtab): Populate the nullstr earlier. Add one
528 to the cts_len for the null string, since it is no longer done
529 in ctf_str_count_strtab. Adjust for csa_external_offset rename.
530 Populate the csa_offset for both internal and external cases.
531 Flush the ctf_prov_strtab afterwards, and reset the
532 ctf_str_prov_offset.
533 * ctf-create.c (ctf_grow_ptrtab): New.
534 (ctf_create): Call it. Initialize new fields rather than old
535 ones. Tell ctf_bufopen_internal that this is a writable dictionary.
536 Set the ctl hashes and data model.
537 (ctf_update): Rename to...
538 (ctf_serialize): ... this. Leave a compatibility function behind.
539 Tell ctf_simple_open_internal that this is a writable dictionary.
540 Pass the new fields along from the old dictionary. Drop
541 ctf_dtnextid and ctf_dtbyname. Use ctf_strraw, not dtd_name.
542 Do not zero out the DTD's ctt_name.
543 (ctf_prefixed_name): Rename to...
544 (ctf_name_table): ... this. No longer return a prefixed name: return
545 the applicable name table instead.
546 (ctf_dtd_insert): Use it, and use the right name table. Pass in the
547 kind we're adding. Migrate away from dtd_name.
548 (ctf_dtd_delete): Adjust similarly. Remove the ref to the
549 deleted ctt_name.
550 (ctf_dtd_lookup_type_by_name): Remove.
551 (ctf_dynamic_type): Always return NULL on read-only dictionaries.
552 No longer check ctf_dtnextid: check ctf_typemax instead.
553 (ctf_snapshot): No longer use ctf_dtnextid: use ctf_typemax instead.
554 (ctf_rollback): Likewise. No longer fail with ECTF_OVERROLLBACK. Use
555 ctf_name_table and the right name table, and migrate away from
556 dtd_name as in ctf_dtd_delete.
557 (ctf_add_generic): Pass in the kind explicitly and pass it to
558 ctf_dtd_insert. Use ctf_typemax, not ctf_dtnextid. Migrate away
559 from dtd_name to using ctf_str_add_ref to populate the ctt_name.
560 Grow the ptrtab if needed.
561 (ctf_add_encoded): Pass in the kind.
562 (ctf_add_slice): Likewise.
563 (ctf_add_array): Likewise.
564 (ctf_add_function): Likewise.
565 (ctf_add_typedef): Likewise.
566 (ctf_add_reftype): Likewise. Initialize the ctf_ptrtab, checking
567 ctt_name rather than dtd_name.
568 (ctf_add_struct_sized): Pass in the kind. Use
569 ctf_lookup_by_rawname, not ctf_hash_lookup_type /
570 ctf_dtd_lookup_type_by_name.
571 (ctf_add_union_sized): Likewise.
572 (ctf_add_enum): Likewise.
573 (ctf_add_enum_encoded): Likewise.
574 (ctf_add_forward): Likewise.
575 (ctf_add_type): Likewise.
576 (ctf_compress_write): Call ctf_serialize: adjust for ctf_size not
577 being initialized until after the call.
578 (ctf_write_mem): Likewise.
579 (ctf_write): Likewise.
580 * ctf-archive.c (arc_write_one_ctf): Likewise.
581 * ctf-lookup.c (ctf_lookup_by_name): Use ctf_lookuup_by_rawhash, not
582 ctf_hash_lookup_type.
583 (ctf_lookup_by_id): No longer check the readonly types if the
584 dictionary is writable.
585 * ctf-open.c (init_types): Assert that this dictionary is not
586 writable. Adjust to use the new name hashes, ctf_name_table,
587 and ctf_ptrtab_len. GNU style fix for the final ptrtab scan.
588 (ctf_bufopen_internal): New 'writable' parameter. Flip on LCTF_RDWR
589 if set. Drop out early when dictionary is writable. Split the
590 ctf_lookups initialization into...
591 (ctf_set_cth_hashes): ... this new function.
592 (ctf_simple_open_internal): Adjust. New 'writable' parameter.
593 (ctf_simple_open): Adjust accordingly.
594 (ctf_bufopen): Likewise.
595 (ctf_file_close): Destroy the appropriate name hashes. No longer
596 destroy ctf_dtbyname, which is gone.
597 (ctf_getdatasect): Remove spurious "extern".
598 * ctf-types.c (ctf_lookup_by_rawname): New, look up types in the
599 specified name table, given a kind.
600 (ctf_lookup_by_rawhash): Likewise, given a ctf_names_t *.
601 (ctf_member_iter): Add support for iterating over the
602 dynamic type list.
603 (ctf_enum_iter): Likewise.
604 (ctf_variable_iter): Likewise.
605 (ctf_type_rvisit): Likewise.
606 (ctf_member_info): Add support for types in the dynamic type list.
607 (ctf_enum_name): Likewise.
608 (ctf_enum_value): Likewise.
609 (ctf_func_type_info): Likewise.
610 (ctf_func_type_args): Likewise.
611 * ctf-link.c (ctf_accumulate_archive_names): No longer call
612 ctf_update.
613 (ctf_link_write): Likewise.
614 (ctf_link_intern_extern_string): Adjust for new
615 ctf_str_add_external return value.
616 (ctf_link_add_strtab): Likewise.
617 * ctf-util.c (ctf_list_empty_p): New.
618
619 2019-08-05 Nick Alcock <nick.alcock@oracle.com>
620
621 * ctf-types.c (ctf_type_resolve): Return ECTF_NONREPRESENTABLE on
622 type zero.
623 * ctf-create.c (ctf_add_type): Detect and skip nonrepresentable
624 members and types.
625 (ctf_add_variable): Likewise for variables pointing to them.
626 * ctf-link.c (ctf_link_one_type): Do not warn for nonrepresentable
627 type link failure, but do warn for others.
628 * ctf-dump.c (ctf_dump_format_type): Likewise. Do not assume all
629 errors to be ENOMEM.
630 (ctf_dump_member): Likewise.
631 (ctf_dump_type): Likewise.
632 (ctf_dump_header_strfield): Do not assume all errors to be ENOMEM.
633 (ctf_dump_header_sectfield): Do not assume all errors to be ENOMEM.
634 (ctf_dump_header): Likewise.
635 (ctf_dump_label): likewise.
636 (ctf_dump_objts): likewise.
637 (ctf_dump_funcs): likewise.
638 (ctf_dump_var): likewise.
639 (ctf_dump_str): Likewise.
640
641 2019-09-30 Nick Alcock <nick.alcock@oracle.com>
642
643 * configure.ac (AC_DISABLE_SHARED): New, like opcodes/.
644 (LT_INIT): Likewise.
645 (AM_INSTALL_LIBBFD): Likewise.
646 (dlopen): Note why this is necessary in a comment.
647 (SHARED_LIBADD): Initialize for possibly-PIC libiberty: derived from
648 opcodes/.
649 (SHARED_LDFLAGS): Likewise.
650 (BFD_LIBADD): Likewise, for libbfd.
651 (BFD_DEPENDENCIES): Likewise.
652 (VERSION_FLAGS): Initialize, using a version script if ld supports
653 one, or libtool -export-symbols-regex otherwise.
654 (AC_CONFIG_MACRO_DIR): Add ../BFD.
655 * Makefile.am (ACLOCAL_AMFLAGS): Likewise.
656 (INCDIR): New.
657 (AM_CPPFLAGS): Use $(srcdir), not $(top_srcdir).
658 (noinst_LIBRARIES): Replace with...
659 [INSTALL_LIBBFD] (lib_LTLIBRARIES): This, or...
660 [!INSTALL_LIBBFD] (noinst_LTLIBRARIES): ... this, mentioning new
661 libctf-nobfd.la as well.
662 [INSTALL_LIBCTF] (include_HEADERS): Add the CTF headers.
663 [!INSTALL_LIBCTF] (include_HEADERS): New, empty.
664 (libctf_a_SOURCES): Rename to...
665 (libctf_nobfd_la_SOURCES): ... this, all of libctf other than
666 ctf-open-bfd.c.
667 (libctf_la_SOURCES): Now derived from libctf_nobfd_la_SOURCES,
668 with ctf-open-bfd.c added.
669 (libctf_nobfd_la_LIBADD): New, using @SHARED_LIBADD@.
670 (libctf_la_LIBADD): New, using @BFD_LIBADD@ as well.
671 (libctf_la_DEPENDENCIES): New, using @BFD_DEPENDENCIES@.
672 * Makefile.am [INSTALL_LIBCTF]: Use it.
673 * aclocal.m4: Add ../bfd/acinclude.m4, ../config/acx.m4, and the
674 libtool macros.
675 * libctf.ver: New, everything is version LIBCTF_1.0 currently (even
676 the unstable components).
677 * Makefile.in: Regenerated.
678 * config.h.in: Likewise.
679 * configure: Likewise.
680
681 2019-07-30 Nick Alcock <nick.alcock@oracle.com>
682
683 * configure.ac (INSTALL_LIBCTF): New, controlled by
684 --enable-install-libctf.
685 [INSTALL_LIBCTF] (lib_LIBRARIES): Add libctf.a.
686 * Makefile.in: Regenerated.
687 * configure: Regenerated.
688
689 2019-07-30 Nick Alcock <nick.alcock@oracle.com>
690
691 * ctf-archive.c (ctf_arc_close): Call ctfi_bfd_close if set.
692 * ctf-open-bfd.c (ctf_bfdclose): Fix comment.
693
694 2019-07-30 Nick Alcock <nick.alcock@oracle.com>
695
696 * ctf-open-bfd.c (ctf_fdopen): Call bfd_set_cacheable.
697
698 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
699
700 * ctf-impl.h (includes): Include <sys/param.h> here.
701
702 2019-07-30 Nick Alcock <nick.alcock@oracle.com>
703
704 * ctf-open.c (flip_lbls): Eschew for-loop initial declarations.
705 (flip_objts): Likewise.
706 (flip_vars): Likewise.
707 (flip_types): Likewise.
708
709 2019-07-30 Nick Alcock <nick.alcock@oracle.com>
710
711 * ctf-hash.c (ctf_hashtab_insert): Pass in the key and value
712 freeing functions: if set, free the key and value if the slot
713 already exists. Always reassign the key.
714 (ctf_dynhash_insert): Adjust call appropriately.
715 (ctf_hash_insert_type): Likewise.
716
717 2019-08-03 Nick Alcock <nick.alcock@oracle.com>
718
719 * ctf-create.c (ctf_add_type): Look up and use the forwarded-to
720 type kind. Allow forwards to unify with pre-existing structs/
721 unions/enums.
722
723 2019-07-30 Nick Alcock <nick.alcock@oracle.com>
724
725 * ctf-impl.h (ctf_file_t) <ctf_link_cu_mappping>: New.
726 <ctf_link_memb_name_changer>: Likewise.
727 <ctf_link_memb_name_changer_arg>: Likewise.
728 * ctf-create.c (ctf_update): Update accordingly.
729 * ctf-open.c (ctf_file_close): Likewise.
730 * ctf-link.c (ctf_create_per_cu): Apply the cu mapping.
731 (ctf_link_add_cu_mapping): New.
732 (ctf_link_set_memb_name_changer): Likewise.
733 (ctf_change_parent_name): New.
734 (ctf_name_list_accum_cb_arg_t) <dynames>: New, storage for names
735 allocated by the caller's ctf_link_memb_name_changer.
736 <ndynames>: Likewise.
737 (ctf_accumulate_archive_names): Call the ctf_link_memb_name_changer.
738 (ctf_link_write): Likewise (for _CTF_SECTION only): also call
739 ctf_change_parent_name. Free any resulting names.
740
741 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
742
743 * ctf-link.c (ctf_create_per_cu): New, refactored out of...
744 (ctf_link_one_type): ... here, with parent-name setting added.
745 (check_variable): New.
746 (ctf_link_one_variable): Likewise.
747 (ctf_link_one_input_archive_member): Call it.
748 * ctf-error.c (_ctf_errlist): Updated with new errors.
749
750 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
751
752 * ctf-impl.h (ctf_file_t): New field ctf_link_type_mapping.
753 (struct ctf_link_type_mapping_key): New.
754 (ctf_hash_type_mapping_key): Likewise.
755 (ctf_hash_eq_type_mapping_key): Likewise.
756 (ctf_add_type_mapping): Likewise.
757 (ctf_type_mapping): Likewise.
758 (ctf_dynhash_empty): Likewise.
759 * ctf-open.c (ctf_file_close): Update accordingly.
760 * ctf-create.c (ctf_update): Likewise.
761 (ctf_add_type): Populate the mapping.
762 * ctf-hash.c (ctf_hash_type_mapping_key): Hash a type mapping key.
763 (ctf_hash_eq_type_mapping_key): Check the key for equality.
764 (ctf_dynhash_insert): Fix comment typo.
765 (ctf_dynhash_empty): New.
766 * ctf-link.c (ctf_add_type_mapping): New.
767 (ctf_type_mapping): Likewise.
768 (empty_link_type_mapping): New.
769 (ctf_link_one_input_archive): Call it.
770
771 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
772
773 * ctf-link.c: New file, linking of the string and type sections.
774 * Makefile.am (libctf_a_SOURCES): Add it.
775 * Makefile.in: Regenerate.
776
777 * ctf-impl.h (ctf_file_t): New fields ctf_link_inputs,
778 ctf_link_outputs.
779 * ctf-create.c (ctf_update): Update accordingly.
780 * ctf-open.c (ctf_file_close): Likewise.
781 * ctf-error.c (_ctf_errlist): Updated with new errors.
782
783 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
784
785 * ctf-dump.c (ctf_dump_funcs): Check the right error value.
786
787 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
788
789 * ctf-dump.c (ctf_dump): Use ctf_type_iter_all to dump types, not
790 ctf_type_iter.
791 (ctf_dump_type): Pass down the flag from ctf_type_iter_all.
792 (ctf_dump_format_type): Add non-root-type { } notation.
793 Add root flag to prototype.
794 (ctf_dump_label): Adjust accordingly.
795 (ctf_dump_objts): Likewise.
796 (ctf_dump_var): Likewise.
797
798 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
799
800 * ctf-create.c (ctf_compress_write): Fix double-free.
801
802 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
803
804 * ctf-archive.c (ctf_arc_write): Split off, and reimplement in terms
805 of...
806 (ctf_arc_write_fd): ... this new function.
807 * ctf-create.c (ctf_write_mem): New.
808
809 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
810
811 * ctf-impl.h (ctf_str_atom_t) <csa_offset>: New field.
812 (ctf_file_t) <ctf_syn_ext_strtab>: Likewise.
813 (ctf_str_add_ref): Name the last arg.
814 (ctf_str_add_external) New.
815 (ctf_str_add_strraw_explicit): Likewise.
816 (ctf_simple_open_internal): Likewise.
817 (ctf_bufopen_internal): Likewise.
818
819 * ctf-string.c (ctf_strraw_explicit): Split from...
820 (ctf_strraw): ... here, with new support for ctf_syn_ext_strtab.
821 (ctf_str_add_ref_internal): Return the atom, not the
822 string.
823 (ctf_str_add): Adjust accordingly.
824 (ctf_str_add_ref): Likewise. Move up in the file.
825 (ctf_str_add_external): New: update the csa_offset.
826 (ctf_str_count_strtab): Only account for strings with no csa_offset
827 in the internal strtab length.
828 (ctf_str_write_strtab): If the csa_offset is set, update the
829 string's refs without writing the string out, and update the
830 ctf_syn_ext_strtab. Make OOM handling less ugly.
831 * ctf-create.c (struct ctf_sort_var_arg_cb): New.
832 (ctf_update): Handle failure to populate the strtab. Pass in the
833 new ctf_sort_var arg. Adjust for ctf_syn_ext_strtab addition.
834 Call ctf_simple_open_internal, not ctf_simple_open.
835 (ctf_sort_var): Call ctf_strraw_explicit rather than looking up
836 strings by hand.
837 * ctf-hash.c (ctf_hash_insert_type): Likewise (but using
838 ctf_strraw). Adjust to diagnose ECTF_STRTAB nonetheless.
839 * ctf-open.c (init_types): No longer filter out ECTF_STRTAB.
840 (ctf_file_close): Destroy the ctf_syn_ext_strtab.
841 (ctf_simple_open): Rename to, and reimplement as a wrapper around...
842 (ctf_simple_open_internal): ... this new function, which calls
843 ctf_bufopen_internal.
844 (ctf_bufopen): Rename to, and reimplement as a wrapper around...
845 (ctf_bufopen_internal): ... this new function, which sets
846 ctf_syn_ext_strtab.
847
848 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
849
850 * ctf_types.c (ctf_type_iter_all): New.
851
852 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
853
854 * ctf-open.c (init_symtab): Check for overflow against the right
855 section.
856 (upgrade_header): Set cth_objtidxoff, cth_funcidxoff to zero-length.
857 (upgrade_types_v1): Note that these sections are not checked.
858 (flip_header): Endian-swap the header fields.
859 (flip_ctf): Endian-swap the sections.
860 (flip_objts): Update comment.
861 (ctf_bufopen): Check header offsets and alignment for validity.
862
863 2019-07-13 Nick Alcock <nick.alcock@oracle.com>
864
865 * ctf-open-bfd.c: Add <assert.h>.
866 (ctf_bfdopen_ctfsect): Open string and symbol tables using
867 techniques borrowed from bfd_elf_sym_name.
868 (ctf_new_archive_internal): Improve comment.
869 * ctf-archive.c (ctf_arc_close): Do not free the ctfi_strsect.
870 * ctf-open.c (ctf_bufopen): Allow opening with a string section but
871 no symbol section, but not vice versa.
872
873 2019-07-08 Nick Alcock <nick.alcock@oracle.com>
874
875 * ctf-impl.h (ctf_file_t): New field ctf_openflags.
876 * ctf-open.c (ctf_bufopen): Set it. No longer dump header offsets.
877 * ctf-dump.c (dump_header): New function, dump the CTF header.
878 (ctf_dump): Call it.
879 (ctf_dump_header_strfield): New function.
880 (ctf_dump_header_sectfield): Likewise.
881
882 2019-07-06 Nick Alcock <nick.alcock@oracle.com>
883
884 * ctf-impl.h (ctf_file_t): New fields ctf_header, ctf_dynbase,
885 ctf_cuname, ctf_dyncuname: ctf_base and ctf_buf are no longer const.
886 * ctf-open.c (ctf_set_base): Preserve the gap between ctf_buf and
887 ctf_base: do not assume that it is always sizeof (ctf_header_t).
888 Print out ctf_cuname: only print out ctf_parname if set.
889 (ctf_free_base): Removed, ctf_base is no longer freed: free
890 ctf_dynbase instead.
891 (ctf_set_version): Fix spacing.
892 (upgrade_header): New, in-place header upgrading.
893 (upgrade_types): Rename to...
894 (upgrade_types_v1): ... this. Free ctf_dynbase, not ctf_base. No
895 longer track old and new headers separately. No longer allow for
896 header sizes explicitly: squeeze the headers out on upgrade (they
897 are preserved in fp->ctf_header). Set ctf_dynbase, ctf_base and
898 ctf_buf explicitly. Use ctf_free, not ctf_free_base.
899 (upgrade_types): New, also handle ctf_parmax updating.
900 (flip_header): Flip ctf_cuname.
901 (flip_types): Flip BUF explicitly rather than deriving BUF from
902 BASE.
903 (ctf_bufopen): Store the header in fp->ctf_header. Correct minimum
904 required alignment of objtoff and funcoff. No longer store it in
905 the ctf_buf unless that buf is derived unmodified from the input.
906 Set ctf_dynbase where ctf_base is dynamically allocated. Drop locals
907 that duplicate fields in ctf_file: move allocation of ctf_file
908 further up instead. Call upgrade_header as needed. Move
909 version-specific ctf_parmax initialization into upgrade_types. More
910 concise error handling.
911 (ctf_file_close): No longer test for null pointers before freeing.
912 Free ctf_dyncuname, ctf_dynbase, and ctf_header. Do not call
913 ctf_free_base.
914 (ctf_cuname): New.
915 (ctf_cuname_set): New.
916 * ctf-create.c (ctf_update): Populate ctf_cuname.
917 (ctf_gzwrite): Write out the header explicitly. Remove obsolescent
918 comment.
919 (ctf_write): Likewise.
920 (ctf_compress_write): Get the header from ctf_header, not ctf_base.
921 Fix the compression length: fp->ctf_size never counted the CTF
922 header. Simplify the compress call accordingly.
923
924 2019-07-11 Hans-Peter Nilsson <hp@bitrange.com>
925
926 * ctf-endian.h: Don't assume htole64 and le64toh are always
927 present if HAVE_ENDIAN_H; also check if htole64 is defined.
928 [!WORDS_BIGENDIAN] (htole64, le64toh): Define as identity,
929 not bswap_identity_64.
930
931 2019-09-18 Alan Modra <amodra@gmail.com>
932
933 * ctf-open-bfd.c: Update throughout for bfd section macro changes.
934
935 2019-09-09 Phil Blundell <pb@pbcl.net>
936
937 binutils 2.33 branch created.
938
939 2019-07-18 Nick Alcock <nick.alcock@oracle.com>
940
941 * ctf-types.c (ctf_type_aname_raw): New.
942 (ctf_func_type_info): Likewise.
943 (ctf_func_type_args): Likewise.
944 * ctf-error.c (_ctf_errlist): Fix description.
945 * ctf-lookup.c: Fix file description.
946
947 2019-06-28 Nick Alcock <nick.alcock@oracle.com>
948
949 * ctf-create.c (ctf_create): Fix off-by-one error.
950
951 2019-06-28 Nick Alcock <nick.alcock@oracle.com>
952
953 * ctf-impl.h: (struct ctf_strs_writable): New, non-const version of
954 struct ctf_strs.
955 (struct ctf_dtdef): Note that dtd_data.ctt_name is unpopulated.
956 (struct ctf_str_atom): New, disambiguated single string.
957 (struct ctf_str_atom_ref): New, points to some other location that
958 references this string's offset.
959 (struct ctf_file): New members ctf_str_atoms and ctf_str_num_refs.
960 Remove member ctf_dtvstrlen: we no longer track the total strlen
961 as we add strings.
962 (ctf_str_create_atoms): Declare new function in ctf-string.c.
963 (ctf_str_free_atoms): Likewise.
964 (ctf_str_add): Likewise.
965 (ctf_str_add_ref): Likewise.
966 (ctf_str_rollback): Likewise.
967 (ctf_str_purge_refs): Likewise.
968 (ctf_str_write_strtab): Likewise.
969 (ctf_realloc): Declare new function in ctf-util.c.
970
971 * ctf-open.c (ctf_bufopen): Create the atoms table.
972 (ctf_file_close): Destroy it.
973 * ctf-create.c (ctf_update): Copy-and-free it on update. No longer
974 special-case the position of the parname string. Construct the
975 strtab by calling ctf_str_add_ref and ctf_str_write_strtab after the
976 rest of each buffer element is constructed, not via open-coding:
977 realloc the CTF buffer and append the strtab to it. No longer
978 maintain ctf_dtvstrlen. Sort the variable entry table later, after
979 strtab construction.
980 (ctf_copy_membnames): Remove: integrated into ctf_copy_{s,l,e}members.
981 (ctf_copy_smembers): Drop the string offset: call ctf_str_add_ref
982 after buffer element construction instead.
983 (ctf_copy_lmembers): Likewise.
984 (ctf_copy_emembers): Likewise.
985 (ctf_create): No longer maintain the ctf_dtvstrlen.
986 (ctf_dtd_delete): Likewise.
987 (ctf_dvd_delete): Likewise.
988 (ctf_add_generic): Likewise.
989 (ctf_add_enumerator): Likewise.
990 (ctf_add_member_offset): Likewise.
991 (ctf_add_variable): Likewise.
992 (membadd): Likewise.
993 * ctf-util.c (ctf_realloc): New, wrapper around realloc that aborts
994 if there are active ctf_str_num_refs.
995 (ctf_strraw): Move to ctf-string.c.
996 (ctf_strptr): Likewise.
997 * ctf-string.c: New file, strtab manipulation.
998
999 * Makefile.am (libctf_a_SOURCES): Add it.
1000 * Makefile.in: Regenerate.
1001
1002 2019-06-28 Nick Alcock <nick.alcock@oracle.com>
1003
1004 * ctf-impl.h (ctf_hash_iter_f): New.
1005 (ctf_dynhash_iter): New declaration.
1006 (ctf_dynhash_iter_remove): New declaration.
1007 * ctf-hash.c (ctf_dynhash_iter): Define.
1008 (ctf_dynhash_iter_remove): Likewise.
1009 (ctf_hashtab_traverse): New.
1010 (ctf_hashtab_traverse_remove): Likewise.
1011 (struct ctf_traverse_cb_arg): Likewise.
1012 (struct ctf_traverse_remove_cb_arg): Likewise.
1013
1014 2019-06-28 Nick Alcock <nick.alcock@oracle.com>
1015
1016 * ctf-hash.c (ctf_dynhash_remove): Call with a mocked-up element.
1017
1018 2019-06-28 Nick Alcock <nick.alcock@oracle.com>
1019
1020 * ctf-dump.c (ctf_dump_format_type): Prefix hex strings with 0x.
1021 (ctf_dump_funcs): Likewise.
1022
1023 2019-06-19 Nick Alcock <nick.alcock@oracle.com>
1024
1025 * ctf-open-bfd.c: Add swap.h and ctf-endian.h.
1026 (ctf_fdopen): Check for endian-swapped raw CTF magic, and
1027 little-endian CTF archive magic. Do not check the CTF version:
1028 ctf_simple_open does that in endian-safe ways. Do not dereference
1029 null pointers on open failure.
1030
1031 2019-06-19 Nick Alcock <nick.alcock@oracle.com>
1032
1033 * ctf-open.c (get_vbytes_common): Return the new slice size.
1034 (ctf_bufopen): Flip the endianness of the CTF-section header copy.
1035 Remember to copy in the CTF data when opening an uncompressed
1036 foreign-endian CTF file. Prune useless variable manipulation.
1037
1038 2019-06-19 Nick Alcock <nick.alcock@oracle.com>
1039
1040 * ctf-open.c (ctf_types): Fail when unidentified type kinds are
1041 seen.
1042
1043 2019-06-19 Nick Alcock <nick.alcock@oracle.com>
1044
1045 * ctf-open.c (ctf_bufopen): Dump header offsets into the debugging
1046 output.
1047
1048 2019-06-19 Nick Alcock <nick.alcock@oracle.com>
1049
1050 * ctf-subr.c (_PAGESIZE): Remove.
1051 (ctf_data_alloc): Likewise.
1052 (ctf_data_free): Likewise.
1053 (ctf_data_protect): Likewise.
1054 * ctf-impl.h: Remove declarations.
1055 * ctf-create.c (ctf_update): No longer call ctf_data_protect: use
1056 ctf_free, not ctf_data_free.
1057 (ctf_compress_write): Use ctf_data_alloc, not ctf_alloc. Free
1058 the buffer again on compression error.
1059 * ctf-open.c (ctf_set_base): No longer track the size: call
1060 ctf_free, not ctf_data_free.
1061 (upgrade_types): Likewise. Call ctf_alloc, not ctf_data_alloc.
1062 (ctf_bufopen): Likewise. No longer call ctf_data_protect.
1063
1064 2019-06-19 Nick Alcock <nick.alcock@oracle.com>
1065
1066 * ctf-create.c (ctf_dtd_insert): Pass on error returns from
1067 ctf_dynhash_insert.
1068 (ctf_dvd_insert): Likewise.
1069 (ctf_add_generic): Likewise.
1070 (ctf_add_variable): Likewise.
1071 * ctf-impl.h: Adjust declarations.
1072
1073 2019-06-14 Alan Modra <amodra@gmail.com>
1074
1075 * configure: Regenerate.
1076
1077 2019-06-06 Nick Alcock <nick.alcock@oracle.com>
1078
1079 * ctf-decls.h: Include <libiberty.h>.
1080 * ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup().
1081
1082 2019-06-06 Nick Alcock <nick.alcock@oracle.com>
1083
1084 * ctf-dump.c (ctf_dump_format_type): Cast size_t's used in printf()s.
1085 (ctf_dump_objts): Likewise.
1086 (ctf_dump_funcs): Likewise.
1087 (ctf_dump_member): Likewise.
1088 (ctf_dump_str): Likewise.
1089
1090 2019-06-06 Nick Alcock <nick.alcock@oracle.com>
1091
1092 * ctf-archive.c (arc_mmap_header): Mark fd as potentially unused.
1093 * ctf-subr.c (ctf_data_protect): Mark both args as potentially unused.
1094
1095 2019-06-05 Nick Alcock <nick.alcock@oracle.com>
1096
1097 * ctf-archive.c (ctf_arc_write): Eschew %zi format specifier.
1098 (ctf_arc_open_by_offset): Likewise.
1099 * ctf-create.c (ctf_add_type): Likewise.
1100
1101 2019-06-04 Tom Tromey <tromey@adacore.com>
1102
1103 * ctf-create.c (ctf_add_encoded, ctf_add_slice)
1104 (ctf_add_member_offset): Use CHAR_BIT, not NBBY.
1105
1106 2019-06-04 Nick Alcock <nick.alcock@oracle.com>
1107
1108 * configure.ac: Check for O_CLOEXEC.
1109 * ctf-decls.h (O_CLOEXEC): Define (to 0), if need be.
1110 * config.h.in: Regenerate.
1111 * configure: Likewise.
1112
1113 2019-06-04 Nick Alcock <nick.alcock@oracle.com>
1114
1115 * qsort_r.c: Rename to...
1116 * ctf-qsort_r.c: ... this.
1117 (_quicksort): Define to ctf_qsort_r.
1118 * ctf-decls.h (qsort_r): Remove.
1119 (ctf_qsort_r): Add.
1120 (struct ctf_qsort_arg): New, transport the real ARG and COMPAR.
1121 (ctf_qsort_compar_thunk): Rearrange the arguments to COMPAR.
1122 * Makefile.am (libctf_a_LIBADD): Remove.
1123 (libctf_a_SOURCES): New, add ctf-qsort_r.c.
1124 * ctf-archive.c (ctf_arc_write): Call ctf_qsort_r, not qsort_r.
1125 * ctf-create.c (ctf_update): Likewise.
1126 * configure.ac: Check for BSD versus GNU qsort_r signature.
1127 * Makefile.in: Regenerate.
1128 * config.h.in: Likewise.
1129 * configure: Likewise.
1130
1131 2019-06-03 Nick Alcock <nick.alcock@oracle.com>
1132
1133 * ctf-dump.c (ctf_dump_funcs): Free in the right place.
1134
1135 2019-05-29 Nick Alcock <nick.alcock@oracle.com>
1136
1137 * Makefile.am (ZLIB): New.
1138 (ZLIBINC): Likewise.
1139 (AM_CFLAGS): Use them.
1140 (libctf_a_LIBADD): New, for LIBOBJS.
1141 * configure.ac: Check for zlib, endian.h, and qsort_r.
1142 * ctf-endian.h: New, providing htole64 and le64toh.
1143 * swap.h: Code style fixes.
1144 (bswap_identity_64): New.
1145 * qsort_r.c: New, from gnulib (with one added #include).
1146 * ctf-decls.h: New, providing a conditional qsort_r declaration,
1147 and unconditional definitions of MIN and MAX.
1148 * ctf-impl.h: Use it. Do not use <sys/errno.h>.
1149 (ctf_set_errno): Now returns unsigned long.
1150 * ctf-util.c (ctf_set_errno): Adjust here too.
1151 * ctf-archive.c: Use ctf-endian.h.
1152 (ctf_arc_open_by_offset): Use memset, not bzero. Drop cts_type,
1153 cts_flags and cts_offset.
1154 (ctf_arc_write): Drop debugging dependent on the size of off_t.
1155 * ctf-create.c: Provide a definition of roundup if not defined.
1156 (ctf_create): Drop cts_type, cts_flags and cts_offset.
1157 (ctf_add_reftype): Do not check if type IDs are below zero.
1158 (ctf_add_slice): Likewise.
1159 (ctf_add_typedef): Likewise.
1160 (ctf_add_member_offset): Cast error-returning ssize_t's to size_t
1161 when known error-free. Drop CTF_ERR usage for functions returning
1162 int.
1163 (ctf_add_member_encoded): Drop CTF_ERR usage for functions returning
1164 int.
1165 (ctf_add_variable): Likewise.
1166 (enumcmp): Likewise.
1167 (enumadd): Likewise.
1168 (membcmp): Likewise.
1169 (ctf_add_type): Likewise. Cast error-returning ssize_t's to size_t
1170 when known error-free.
1171 * ctf-dump.c (ctf_is_slice): Drop CTF_ERR usage for functions
1172 returning int: use CTF_ERR for functions returning ctf_type_id.
1173 (ctf_dump_label): Likewise.
1174 (ctf_dump_objts): Likewise.
1175 * ctf-labels.c (ctf_label_topmost): Likewise.
1176 (ctf_label_iter): Likewise.
1177 (ctf_label_info): Likewise.
1178 * ctf-lookup.c (ctf_func_args): Likewise.
1179 * ctf-open.c (upgrade_types): Cast to size_t where appropriate.
1180 (ctf_bufopen): Likewise. Use zlib types as needed.
1181 * ctf-types.c (ctf_member_iter): Drop CTF_ERR usage for functions
1182 returning int.
1183 (ctf_enum_iter): Likewise.
1184 (ctf_type_size): Likewise.
1185 (ctf_type_align): Likewise. Cast to size_t where appropriate.
1186 (ctf_type_kind_unsliced): Likewise.
1187 (ctf_type_kind): Likewise.
1188 (ctf_type_encoding): Likewise.
1189 (ctf_member_info): Likewise.
1190 (ctf_array_info): Likewise.
1191 (ctf_enum_value): Likewise.
1192 (ctf_type_rvisit): Likewise.
1193 * ctf-open-bfd.c (ctf_bfdopen): Drop cts_type, cts_flags and
1194 cts_offset.
1195 (ctf_simple_open): Likewise.
1196 (ctf_bfdopen_ctfsect): Likewise. Set cts_size properly.
1197 * Makefile.in: Regenerate.
1198 * aclocal.m4: Likewise.
1199 * config.h: Likewise.
1200 * configure: Likewise.
1201
1202 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1203
1204 * configure.in: Check for bfd_section_from_elf_index.
1205 * configure: Regenerate.
1206 * config.h.in [HAVE_BFD_ELF]: Likewise.
1207 * libctf/ctf_open_bfd (ctf_bfdopen_ctfsect): Use it.
1208 abfd is potentially unused now.
1209
1210 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1211
1212 * Makefile.am: New.
1213 * Makefile.in: Regenerated.
1214 * config.h.in: Likewise.
1215 * aclocal.m4: Likewise.
1216 * configure: Likewise.
1217
1218 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1219
1220 * ctf-dump.c: New.
1221
1222 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1223
1224 * ctf-labels.c: New.
1225
1226 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1227
1228 * ctf-impl.h (_libctf_version): New declaration.
1229 * ctf-subr.c (_libctf_version): Define it.
1230 (ctf_version): New.
1231
1232 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1233
1234 * ctf-create.c (enumcmp): New.
1235 (enumadd): Likewise.
1236 (membcmp): Likewise.
1237 (membadd): Likewise.
1238 (ctf_add_type): Likewise.
1239
1240 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1241
1242 * ctf-lookup.c (isqualifier): New.
1243 (ctf_lookup_by_name): Likewise.
1244 (struct ctf_lookup_var_key): Likewise.
1245 (ctf_lookup_var): Likewise.
1246 (ctf_lookup_variable): Likewise.
1247 (ctf_lookup_symbol_name): Likewise.
1248 (ctf_lookup_by_symbol): Likewise.
1249 (ctf_func_info): Likewise.
1250 (ctf_func_args): Likewise.
1251
1252 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1253
1254 * ctf-decl.c: New file.
1255 * ctf-types.c: Likewise.
1256 * ctf-impl.h: New declarations.
1257
1258 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1259
1260 * ctf-open-bfd.c: New file.
1261 * ctf-open.c (ctf_close): New.
1262 * ctf-impl.h: Include bfd.h.
1263 (ctf_file): New members ctf_data_mmapped, ctf_data_mmapped_len.
1264 (ctf_archive_internal): New members ctfi_abfd, ctfi_data,
1265 ctfi_bfd_close.
1266 (ctf_bfdopen_ctfsect): New declaration.
1267 (_CTF_SECTION): likewise.
1268
1269 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1270
1271 * ctf-archive.c: New.
1272 * ctf-impl.h (ctf_archive_internal): New type.
1273 (ctf_arc_open_internal): New declaration.
1274 (ctf_arc_bufopen): Likewise.
1275 (ctf_arc_close_internal): Likewise.
1276
1277 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1278
1279 * ctf-open.c: New file.
1280 * swap.h: Likewise.
1281
1282 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1283
1284 * ctf-create.c: New file.
1285 * ctf-lookup.c: New file.
1286
1287 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1288
1289 * ctf-impl.h: New definitions and declarations for type creation
1290 and lookup.
1291
1292 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1293
1294 * ctf-hash.c: New file.
1295 * ctf-impl.h: New declarations.
1296
1297 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1298
1299 * ctf-error.c: New file.
1300
1301 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1302
1303 * ctf-util.c: New file.
1304 * elf.h: Likewise.
1305 * ctf-impl.h: Include it, and add declarations.
1306
1307 2019-05-28 Nick Alcock <nick.alcock@oracle.com>
1308
1309 * ctf-impl.h: New file.
1310 * ctf-subr.c: New file.
1311
1312 \f
1313 Local Variables:
1314 mode: change-log
1315 left-margin: 8
1316 fill-column: 76
1317 version-control: never
1318 End:
This page took 0.055202 seconds and 5 git commands to generate.