summaryrefslogtreecommitdiffstats
path: root/cpukit/libdl/rtl-obj.c
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/libdl/rtl-obj.c
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/libdl/rtl-obj.c')
-rw-r--r--cpukit/libdl/rtl-obj.c6
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