diff options
Diffstat (limited to 'bfd/TODO')
-rw-r--r-- | bfd/TODO | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/bfd/TODO b/bfd/TODO new file mode 100644 index 0000000..45cf905 --- /dev/null +++ b/bfd/TODO @@ -0,0 +1,49 @@ +Things that still need to be handled: -*- 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 - 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. + +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 - 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 - 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 - if you don't call the reclaim_ functions, the memory will be + reclaimed at bfd_close time. |