diff options
author | Chris Johns <chrisj@rtems.org> | 2019-05-14 10:34:32 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2019-05-22 09:28:06 +1000 |
commit | 327e45dac2edae51caabc7777e2381ad653502ff (patch) | |
tree | 4b3ead70909f23a4c0c7dba6b6bba3a56dd88e3e /cpukit/libdl/rtl-obj.c | |
parent | score: Add _SMP_Unicast_action() (diff) | |
download | rtems-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/libdl/rtl-obj.c')
-rw-r--r-- | cpukit/libdl/rtl-obj.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cpukit/libdl/rtl-obj.c b/cpukit/libdl/rtl-obj.c index 9acb6f3943..1683ec1c6d 100644 --- a/cpukit/libdl/rtl-obj.c +++ b/cpukit/libdl/rtl-obj.c @@ -914,7 +914,11 @@ rtems_rtl_obj_load_symbols (rtems_rtl_obj* obj, void* data) { uint32_t mask = RTEMS_RTL_OBJ_SECT_SYM; - return rtems_rtl_obj_section_handler (mask, obj, fd, handler, data); + bool ok; + ok = rtems_rtl_obj_section_handler (mask, obj, fd, handler, data); + if (ok) + rtems_rtl_symbol_obj_sort (obj); + return ok; } static int |