loader: Rework of load_dynamic_module.
authorCorey Farrell <git@cfware.com>
Tue, 21 Nov 2017 05:10:58 +0000 (00:10 -0500)
committerCorey Farrell <git@cfware.com>
Thu, 14 Dec 2017 23:49:51 +0000 (18:49 -0500)
commit3505cc88e85384b56a21a57abf99b2416c0f1e5a
tree2cca4fab9d8b384460f660fe447475bf481a37d1
parent80bf0ee99ad963b1ff66aea379a1c291edfb869b
loader: Rework of load_dynamic_module.

* Split off load_dlopen to perform actual dlopen, check results and log
  warnings when needed.
* Always use RTLD_NOW.
* Use flags which minimize number of calls to dlopen required.  First
  attempt always uses RTLD_GLOBAL when global_symbols_only is enabled,
  RTLD_LOCAL when it is not.

This patch significantly reduces the number of dlopen's performed.  With
299 modules my system ran dlopen 857 times before this patch, 655 times
after this patch.

Change-Id: Ib2c9903cfddcc01aed3e01c1e7fe4a3fb9af0f8b
main/loader.c