diff options
author | Chris Johns <chrisj@rtems.org> | 2019-02-15 16:03:59 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2019-02-20 09:05:35 +1100 |
commit | 8a73acb71305c58c6ea58aa0da84d4adb4c125cc (patch) | |
tree | bf67f62b560c58adbeeba1235bf649c6f9fa8469 /images/user/libdl-load.puml | |
parent | c-user: INTERNAL_ERROR_NO_MEMORY_FOR_PER_CPU_DATA (diff) | |
download | rtems-docs-8a73acb71305c58c6ea58aa0da84d4adb4c125cc.tar.bz2 |
user: Add a Dynamic Loader section.
Diffstat (limited to '')
-rw-r--r-- | images/user/libdl-load.puml | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/images/user/libdl-load.puml b/images/user/libdl-load.puml new file mode 100644 index 0000000..b9ae20d --- /dev/null +++ b/images/user/libdl-load.puml @@ -0,0 +1,39 @@ +' +' Libdl Load Executable Object file +' +' Copyright (c) 2019 Chris Johns <chrisj@rtems.org> +' All rights reserved. +' +@startuml + start + :dlopen; + + if (check libraries ?) then (changed) + :load libraries; + else (no change) + endif + :load object; + floating note left + Searching of unreolved symbols + continues until the remain symbols + cannot be found in the global symbol + table or libraries. + end note + while (unresolved symbols?) is (unresolved) + if (search globals) then (found) + :fix relocations; + else (not found) + endif + if (search libraries ?) then (found) + :load library object; + floating note left + If a symbol is found the library object file + is load adding the symbol to the global + symbol table and potentially adding more + unresolved symbols. + end note + else (not found) + endif + endwhile (all searched) + stop +@enduml |