libctf, include: remove the nondeduplicating CTF linker
[deliverable/binutils-gdb.git] / libctf / ChangeLog
index 42ca1c61491de2512257f147d78e3dc80da65e9d..5c38c6f391bee911adb187c3ffe1eae1cd4a9c6d 100644 (file)
@@ -1,3 +1,321 @@
+2021-03-02  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-link.c (ctf_create_per_cu): Drop FILENAME now that it is
+       always identical to CUNAME.
+       (ctf_link_deduplicating_one_symtypetab): Adjust.
+       (ctf_link_one_type): Remove.
+       (ctf_link_one_input_archive_member): Likewise.
+       (ctf_link_close_one_input_archive): Likewise.
+       (ctf_link_one_input_archive): Likewise.
+       (ctf_link): No longer call it.  Drop CTF_LINK_NONDEDUP path.
+       Improve header comment a bit (dicts, not files).  Adjust
+       ctf_create_per_cu call.
+       (ctf_link_deduplicating_variables): Simplify.
+       (ctf_link_in_member_cb_arg_t) <cu_name>: Remove.
+       <in_input_cu_file>: Likewise.
+       <in_fp_parent>: Likewise.
+       <done_parent>: Likewise.
+       (ctf_link_one_variable): Turn uses of in_file_name to in_cuname.
+
+2021-03-02  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-types.c (ctf_member_iter): Move 'rc' to an inner scope.
+       (ctf_enum_iter): Reimplement in terms of ctf_enum_next.
+       (ctf_type_iter): Reimplement in terms of ctf_type_next.
+       (ctf_type_iter_all): Likewise.
+       (ctf_variable_iter): Reimplement in terms of ctf_variable_next.
+       * ctf-archive.c (ctf_archive_iter_internal): Remove.
+       (ctf_archive_iter): Reimplement in terms of ctf_archive_next.
+
+2021-03-02  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-archive.c (ctf_archive_next): Set the name of parents in
+       single-member archives.
+
+2021-02-26  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.in: Regenerate.
+
+2021-02-21  Alan Modra  <amodra@gmail.com>
+
+       * configure.ac: Invoke AC_CANONICAL_TARGET, AC_CANONICAL_HOST
+       and AC_CANONICAL_BUILD.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+
+2021-02-20  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-impl.h (ctf_dict_t) <ctf_symhash>: New.
+       <ctf_symhash_latest>: Likewise.
+       (struct ctf_archive_internal) <ctfi_crossdict_cache>: New.
+       <ctfi_symnamedicts>: New.
+       <ctfi_syms>: Remove.
+       (ctf_lookup_symbol_name): Remove.
+       * ctf-lookup.c (ctf_lookup_symbol_name): Propagate errors from
+       parent properly.  Make static.
+       (ctf_lookup_symbol_idx): New, linear search for the symbol name,
+       cached in the crossdict cache's ctf_symhash (if available), or
+       this dict's (otherwise).
+       (ctf_try_lookup_indexed): Allow the symname to be passed in.
+       (ctf_lookup_by_symbol): Turn into a wrapper around...
+       (ctf_lookup_by_sym_or_name): ... this, supporting name lookup too,
+       using ctf_lookup_symbol_idx in non-writable dicts.  Special-case
+       name lookup in dynamic dicts without reported symbols, which have
+       no symtab or dynsymidx but where name lookup should still work.
+       (ctf_lookup_by_symbol_name): New, another wrapper.
+       * ctf-archive.c (enosym): Note that this is present in
+       ctfi_symnamedicts too.
+       (ctf_arc_close): Adjust for removal of ctfi_syms.  Free the
+       ctfi_symnamedicts.
+       (ctf_arc_flush_caches): Likewise.
+       (ctf_dict_open_cached): Memoize the first cached dict in the
+       crossdict cache.
+       (ctf_arc_lookup_symbol): Turn into a wrapper around...
+       (ctf_arc_lookup_sym_or_name): ... this.  No longer cache
+       ctf_id_t lookups: just call ctf_lookup_by_symbol as needed (but
+       still cache the dicts those lookups succeed in).  Add
+       lookup-by-name support, with dicts of successful lookups cached in
+       ctfi_symnamedicts.  Refactor the caching code a bit.
+       (ctf_arc_lookup_symbol_name): New, another wrapper.
+       * ctf-open.c (ctf_dict_close): Free the ctf_symhash.
+       * libctf.ver (LIBCTF_1.2): New version.  Add
+       ctf_lookup_by_symbol_name, ctf_arc_lookup_symbol_name.
+       * testsuite/libctf-lookup/enum-symbol.c (main): Use
+       ctf_arc_lookup_symbol rather than looking up the name ourselves.
+       Fish it out repeatedly, to make sure that symbol caching isn't
+       broken.
+       (symidx_64): Remove.
+       (symidx_32): Remove.
+       * testsuite/libctf-lookup/enum-symbol-obj.lk: Test symbol lookup
+       in an unlinked object file (indexed symtypetab sections only).
+       * testsuite/libctf-writable/symtypetab-nonlinker-writeout.c
+       (try_maybe_reporting): Check symbol types via
+       ctf_lookup_by_symbol_name as well as ctf_symbol_next.
+       * testsuite/libctf-lookup/conflicting-type-syms.*: New test of
+       lookups in a multi-dict archive.
+
+2021-02-20  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/config/default.exp (ld_L_opt): Define.
+       * testsuite/lib/ctf-lib.exp (load_common_lib): Delete.  Instead load
+       ld-lib.exp.
+       (run_host_cmd, run_host_cmd_yesno, check_compiler_available): Delete.
+       (compile_one_cc, check_ctf_available): Delete.
+
+2021-02-03  Nick Alcock  <nick.alcock@oracle.com>
+
+       * configure.ac (ac_cv_libctf_bfd_elf): Include string.h.
+       * configure: Regenerated.
+
+2021-02-03  Nick Alcock  <nick.alcock@oracle.com>
+
+       * configure.ac (EXPECT): Check for, in order to define...
+       (TCL_TRY): ... this, if Tcl supports try/catch.
+       * Makefile.am (TCL_TRY): Run the testsuite only if set.
+       * configure: Regenerated.
+       * Makefile.in: Likewise.
+
+2021-02-02  Nick Alcock  <nick.alcock@oracle.com>
+
+       * configure.ac (CTF_LIBADD): Remove explicit -lintl population in
+       favour of LIBINTL.
+       * Makefile.am (libctf_nobfd_la_LIBADD): No longer explicitly
+       include $(LIBINTL).
+       (check-DEJAGNU): Pass down to tests as well.
+       * configure: Regenerated.
+       * Makefile.in: Likewise.
+
+2021-01-27  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-string.c (ctf_str_add): Treat adding a NULL as adding "".
+       (ctf_str_add_ref): Likewise.
+       (ctf_str_add_external): Likewise.
+       * ctf-types.c (ctf_type_name_raw): Always return "" for offset 0.
+       * ctf-dedup.c (ctf_dedup_multiple_input_dicts): Don't armour
+       against NULL name.
+       (ctf_dedup_maybe_synthesize_forward): Likewise.
+
+2021-01-27  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-create.c (ctf_serialize): Fix shadowing.
+
+2021-01-27  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-create.c (ctf_add_encoded): Add check for non-empty name.
+       (ctf_add_forward): Likewise.
+       (ctf_add_typedef): Likewise.
+
+2021-01-27  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-open.c (init_types): Rip out code to check anonymous typedef
+       nodes.
+       * ctf-create.c (ctf_add_reftype): Likewise.
+       * ctf-lookup.c (refresh_pptrtab): Likewise.
+
+2021-01-27  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-impl.c (_libctf_nonnull_): Add parameters.
+       (LCTF_LINKING): New flag.
+       (ctf_dict_t) <ctf_link_flags>: Mention it.
+       * ctf-link.c (ctf_link): Keep LCTF_LINKING set across call.
+       (ctf_write): Likewise, including in child dictionaries.
+       (ctf_link_shuffle_syms): Make sure ctf_dynsyms is NULL if there
+       are no reported symbols.
+       * ctf-create.c (symtypetab_delete_nonstatic_vars): Make sure
+       the variable has been reported as a symbol by the linker.
+       (symtypetab_skippable): Mention relationship between SYMFP and the
+       flags.
+       (symtypetab_density): Adjust nonnullity.  Exit early if no symbols
+       were reported and force-indexing is off (i.e., we are doing a
+       final link).
+       (ctf_serialize): Handle the !LCTF_LINKING case by writing out an
+       indexed, sorted symtypetab (and allow SYMFP to be NULL in this
+       case).  Turn sorting off if this is a non-final link.  Only delete
+       nonstatic vars if we are filtering symbols and the linker has
+       reported some.
+       * testsuite/libctf-regression/nonstatic-var-section-ld-r*:
+       New test of variable and symtypetab section population when
+       ld -r is used.
+       * testsuite/libctf-regression/nonstatic-var-section-ld-executable.lk:
+       Likewise, when ld of an executable is used.
+       * testsuite/libctf-regression/nonstatic-var-section-ld.lk:
+       Likewise, when ld -shared alone is used.
+       * testsuite/libctf-regression/nonstatic-var-section-ld*.c:
+       Lookup programs for the above.
+       * testsuite/libctf-writable/symtypetab-nonlinker-writeout.*: New
+       test, testing survival of symbols across ctf_write paths.
+       * testsuite/lib/ctf-lib.exp (run_lookup_test): New option,
+       nonshared, suppressing linking of the SOURCE with -shared.
+
+2021-01-19  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-create.c (membadd): Transform ""-named members into
+       NULL-named ones.
+       * testsuite/libctf-regression/type-add-unnamed-struct*: New test.
+
+2021-01-19  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-lookup.c (ctf_lookup_by_name_internal): Do not return the
+       base type if looking up a nonexistent pointer type.
+       * testsuite/libctf-regression/pptrtab*: Test it.
+
+2021-01-13  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.in: Regenerate.
+
+2021-01-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutils/26792
+       * configure.ac: Use GNU_MAKE_JOBSERVER.
+       * aclocal.m4: Regenerated.
+       * configure: Likewise.
+
+2021-01-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/27173
+       * configure: Regenerated.
+
+2021-01-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2021-01-09  Nick Clifton  <nickc@redhat.com>
+
+       * 2.36 release branch crated.
+
+2021-01-09  Alan Modra  <amodra@gmail.com>
+
+       * configure: Regenerate.
+
+2021-01-07  Samuel Thibault  <samuel.thibault@gnu.org>
+
+       * configure: Regenerate.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * testsuite/libctf-lookup/struct-iteration.c (main):
+       ctf_member_count returns an int.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * Makefile.am (BASEDIR): New.
+       (BFDDIR): Likewise.
+       (check-DEJAGNU): Add development.exp to prerequisites.
+       (development.exp): New.
+       (CONFIG_STATUS_DEPENDENCIES): New.
+       (EXTRA_DEJAGNU_SITE_CONFIG): Likewise.
+       (DISTCLEANFILES): Likewise.
+       * Makefile.in: Regenerated.
+       * testsuite/lib/ctf-lib.exp (check_ctf_available): Return boolean.
+       * testsuite/libctf-lookup/lookup.exp: Call check_ctf_available.
+       * testsuite/libctf-regression/regression.exp: Likewise.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-types.c (ctf_type_aname): Print forwards to unions and enums
+       properly.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-impl.h (ctf_dict_t) <ctf_pptrtab>: New.
+       <ctf_pptrtab_len>: New.
+       <ctf_pptrtab_typemax>: New.
+       * ctf-create.c (ctf_serialize): Update accordingly.
+       (ctf_add_reftype): Note that we don't need to update pptrtab here,
+       despite updating ptrtab.
+       * ctf-open.c (ctf_dict_close): Destroy the pptrtab.
+       (ctf_import): Likewise.
+       (ctf_import_unref): Likewise.
+       * ctf-lookup.c (grow_pptrtab): New.
+       (refresh_pptrtab): New, update a pptrtab.
+       (ctf_lookup_by_name): Turn into a wrapper around (and rename to)...
+       (ctf_lookup_by_name_internal): ... this: construct the pptrtab, and
+       use it in addition to the parent's ptrtab when parent dicts are
+       searched.
+       * testsuite/libctf-regression/regression.exp: New testsuite for
+       regression tests.
+       * testsuite/libctf-regression/pptrtab*: New test.
+       * testsuite/libctf-writable/writable.exp: New testsuite for tests of
+       writable CTF dicts.
+       * testsuite/libctf-writable/pptrtab*: New test.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-archive.c (ctf_archive_iter): Remove outdated comment.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-impl.h (struct ctf_next) <u.ctn_next>: Move to...
+       <ctn_next>: ... here.
+       * ctf-util.c (ctf_next_destroy): Unconditionally destroy it.
+       * ctf-lookup.c (ctf_symbol_next): Adjust accordingly.
+       * ctf-types.c (ctf_member_iter): Reimplement in terms of...
+       (ctf_member_next): ... this.  Support recursive unnamed member
+       iteration (off by default).
+       (ctf_member_info): Look up members in unnamed sub-structs.
+       * ctf-dedup.c (ctf_dedup_rhash_type): Adjust ctf_member_next call.
+       (ctf_dedup_emit_struct_members): Likewise.
+       * testsuite/libctf-lookup/struct-iteration-ctf.c: Test empty unnamed
+       members, and a normal member after the end.
+       * testsuite/libctf-lookup/struct-iteration.c: Verify that
+       ctf_member_count is consistent with the number of successful returns
+       from a non-recursive ctf_member_next.
+       * testsuite/libctf-lookup/struct-iteration-*: New, test iteration
+       over struct members.
+       * testsuite/libctf-lookup/struct-lookup.c: New test.
+       * testsuite/libctf-lookup/struct-lookup.lk: New test.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-link.c (ctf_link_warn_outdated_inputs): New.
+       (ctf_link_write): Call it.
+
+2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
+
+       * testsuite/libctf-lookup/enum-symbol.lk: New symbol-lookup test.
+       * testsuite/libctf-lookup/enum-symbol-ctf.c: New CTF input.
+       * testsuite/libctf-lookup/enum-symbol.c: New lookup test.
+
 2021-01-05  Nick Alcock  <nick.alcock@oracle.com>
 
        * Makefile.am (EXPECT): New.
This page took 0.026557 seconds and 4 git commands to generate.