summaryrefslogtreecommitdiff
path: root/libctf/ChangeLog
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2021-03-02 15:10:05 +0000
committerNick Alcock <nick.alcock@oracle.com>2021-03-02 15:10:05 +0000
commit8915c559d40186064d0be75229f9b4e5ac649b16 (patch)
tree1e64aa681aafe4ec0deaa22ce1362cf6db2d4aff /libctf/ChangeLog
parentfd12633780a9f5a5541e0999749c67b562ee9a16 (diff)
downloadbinutils-gdb-8915c559d40186064d0be75229f9b4e5ac649b16.tar.gz
libctf, include: remove the nondeduplicating CTF linker
The nondeduplicating CTF linker was kept around when the deduplicating one was added so that people had something to fall back to in case the deduplicating linker turned out to be buggy. It's now much more stable than the nondeduplicating linker, in addition to much faster, using much less memory and producing much better output. In addition, while libctf has a linker flag to invoke the nondeduplicating linker, ld does not expose it: the only way to turn it on within ld is an intentionally- undocumented environment variable. So we can remove it without any ABI or user-visibility concerns (the only thing we leave around is the CTF_LINK_NONDEDUP flag, which can easily be interpreted as "deduplicate less", though right now it does nothing). This lets us remove a lot of complexity associated with tracking filenames and CU names separately (something the deduplcating linker never bothered with, since the cunames are always reliable and ld never hands us useful filenames anyway) The biggest lacuna left behind is the ctf_type_mapping machinery, which slows down deduplicating links quite a lot. We can't just ditch it because ctf_add_type uses it: removing the slowdown from the deduplicating linker is a job for another commit. include/ChangeLog 2021-03-02 Nick Alcock <nick.alcock@oracle.com> * ctf-api.h (CTF_LINK_SHARE_DUPLICATED): Note that this might merely change how much deduplication is done. libctf/ChangeLog 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.
Diffstat (limited to 'libctf/ChangeLog')
-rw-r--r--libctf/ChangeLog19
1 files changed, 19 insertions, 0 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index ebfd2f4b49a..5c38c6f391b 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,24 @@
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.