aboutsummaryrefslogtreecommitdiff
path: root/bfd/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/TODO')
-rw-r--r--bfd/TODO49
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.