summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/rtl
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2019-05-14 10:34:32 +1000
committerChris Johns <chrisj@rtems.org>2019-05-22 09:28:06 +1000
commit327e45dac2edae51caabc7777e2381ad653502ff (patch)
tree4b3ead70909f23a4c0c7dba6b6bba3a56dd88e3e /cpukit/include/rtems/rtl
parentscore: Add _SMP_Unicast_action() (diff)
downloadrtems-327e45dac2edae51caabc7777e2381ad653502ff.tar.bz2
libdl: Sort object file symbols and use a binary search to find
- Replace the linear object file symbol search with a binary search. - Sort the object file symbols after loading. Closes #3748
Diffstat (limited to 'cpukit/include/rtems/rtl')
-rw-r--r--cpukit/include/rtems/rtl/rtl-sym.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/cpukit/include/rtems/rtl/rtl-sym.h b/cpukit/include/rtems/rtl/rtl-sym.h
index aff9339ea1..07cad4cab6 100644
--- a/cpukit/include/rtems/rtl/rtl-sym.h
+++ b/cpukit/include/rtems/rtl/rtl-sym.h
@@ -97,6 +97,15 @@ bool rtems_rtl_symbol_global_add (rtems_rtl_obj* obj,
rtems_rtl_obj_sym* rtems_rtl_symbol_global_find (const char* name);
/**
+ * Sort an object file's local and global symbol table. This needs to
+ * be done before calling @ref rtems_rtl_symbol_obj_find as it
+ * performs a binary search on the tables.
+ *
+ * @param obj The object file to sort.
+ */
+void rtems_rtl_symbol_obj_sort (rtems_rtl_obj* obj);
+
+/**
* Find a symbol given the symbol label in the local object file.
*
* @param obj The object file to search.