diff options
author | Chris Johns <chrisj@rtems.org> | 2019-01-22 08:48:19 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2019-02-09 10:06:34 +1100 |
commit | 194eb403c39f5ad346e63dc3352e29570857fd93 (patch) | |
tree | 3ef4976810a6e4545a0d4c68138c270ed3abd22c /cpukit/libdl/rtl-shell.c | |
parent | libdl: Add support for trampolines (diff) | |
download | rtems-194eb403c39f5ad346e63dc3352e29570857fd93.tar.bz2 |
libdl: Add support for large memory programs
- Add trampolines to support relocs that are out of range on
support architectures.
- Support not loading separate text/data sections in an object
file if the symbol provided in the section is a duplicate.
A base image may have pulled in part of an object and another
part needs to be dynamically loaded.
- Refactor the unresolved handling to scale to hundreds of
unresolved symbols when loading large number of files.
Updates #3685
Diffstat (limited to 'cpukit/libdl/rtl-shell.c')
-rw-r--r-- | cpukit/libdl/rtl-shell.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/cpukit/libdl/rtl-shell.c b/cpukit/libdl/rtl-shell.c index c2a1af5ddd..ab5553174b 100644 --- a/cpukit/libdl/rtl-shell.c +++ b/cpukit/libdl/rtl-shell.c @@ -129,17 +129,6 @@ typedef struct } rtems_rtl_obj_print; /** - * Return the different between 2 void*. - */ -static size_t -rtems_rtl_delta_voids (void* higher, void* lower) -{ - char* ch = higher; - char* cl = lower; - return ch - cl; -} - -/** * Parse an argument. */ static bool @@ -235,11 +224,11 @@ rtems_rtl_obj_printer (rtems_rtl_obj_print* print, rtems_rtl_obj* obj) { printf ("%-*cexec size : %zi\n", print->indent, ' ', obj->exec_size); printf ("%-*ctext base : %p (%zi)\n", print->indent, ' ', - obj->text_base, rtems_rtl_delta_voids (obj->const_base, obj->text_base)); + obj->text_base, obj->text_size); printf ("%-*cconst base : %p (%zi)\n", print->indent, ' ', - obj->const_base, rtems_rtl_delta_voids (obj->data_base, obj->const_base)); + obj->const_base, obj->const_size); printf ("%-*cdata base : %p (%zi)\n", print->indent, ' ', - obj->data_base, rtems_rtl_delta_voids (obj->bss_base, obj->data_base)); + obj->data_base, obj->data_size); printf ("%-*cbss base : %p (%zi)\n", print->indent, ' ', obj->bss_base, obj->bss_size); } |