X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FTODO;h=63e38cf1052e71105a4df34fff100820664651b2;hb=ebe84f23d2f3c0cb145cc7b3acfb011a4c7df1c9;hp=45cf905c93361a8af9d8579b03be84e775cbc99c;hpb=16423a4a99210a59fc20ea069a5305ccee9414a5;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/TODO b/bfd/TODO index 45cf905c93..63e38cf105 100644 --- a/bfd/TODO +++ b/bfd/TODO @@ -1,49 +1,27 @@ -Things that still need to be handled: -*- Text -*- +Things that still need to be done: -*- Text -*- - o - check all the swapping code. - o - change the memory usage to reflect the message which follows the - page break. - o - implement bfd_abort, which should close the bfd but not alter the - filesystem. - o - remove the following obsolete functions: - bfd_symbol_value - bfd_symbol_name - bfd_get_first_symbol - bfd_get_next_symbol - bfd_classify_symbol - bfd_symbol_hasclass - o - update the bfd doc; write a how-to-write-a-backend doc. - o - change reloc handling as per Steve's suggestion. - - -Changing the way bfd uses memory. The new convention is simple: + o - A source of space lossage is that all the target-dependent code + is in a single bfd_target structure. Hence all the code for + *writing* object files is still pulled into all the applications + that only care about *reading* (gdb, nm, objdump), while gas has + to carry along all the unneeded baggage for reading objects. And + so on. This would be a substantial change, and the payoff would + not all that great (essentially none if bfd is used as a shared + library). - o - bfd will never write into user-supplied memory, nor attempt to - free it. - o - closing a bfd may reclaim all bfd-allocated memory associated - with that bfd. - - - bfd_target_list will be the one exception; you must reclaim the - returned vector yourself. + o - The storage needed by BFD data structures is also larger than strictly + needed. This may be difficult to do much about. -Interface implications are minor (get_symcount_upper_bound will go -away; bfd_cannicalize_symtab will allocate its own memory, etc). - -Certain operations consume a lot of memory; for them manual -reclaimation is available: + o - implement bfd_abort, which should close the bfd but not alter the + filesystem. - o - bfd_canonicalize_symtab will return a pointer to a - null-terminated vector of symbols. Subsequent calls may or may - not return the same pointer. - bfd_canonicalize_relocs will do the same; returning a pointer to - an array of arelocs. Calling this function will read symbols in - too. + o - update the bfd doc; write a how-to-write-a-backend doc, take out + the stupid quips and fill in all the blanks. - o - bfd_reclaim_relocs will free the memory used by these relocs. - the symbols will be untouched. - bfd_reclaim_symtab (ne bfd_reclaim_symbol_table) will free the - memory allocated by canonialize_symtab. - Since relocations point to symbols, any relocations obtained by a - call to bfd_canonicalize_relocs will be reclaimed as well. + o - upgrade the reloc handling as per Steve's suggestion. + +Copyright (C) 2012-2020 Free Software Foundation, Inc. - o - if you don't call the reclaim_ functions, the memory will be - reclaimed at bfd_close time. +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved.