Libdl support for library searching and load and large memory support.

chrisj at chrisj at
Tue Feb 5 01:42:53 UTC 2019


The patch series adds:

- Archive or library searching for unresolved symbols loading the first object file
  that provdes the symbol.

- Large memory support for architectures that use small relative branch

- Libdl small data support for the PowerPC.

- Increase the psim BSP's memory size to 256M.

Archive search and loading of objects is controlled by a configuration file
that lists the libraries on the target. The search continues until all 
unresolved symbols are checkied in all archives and they remain unresolved. The
feature lets you load system libraries onto a target and have the code loaded
and integrated into the running application.

Large memory support is added for ARM and PowerPC architectures. This allows
these architectures to place object files anywhere in the address space. Libdl
adds trampolines to extend a range limited branch instruction to the entire
address space. Currently the trampoline table is at the lower end of an object's
files resident address base.

PowerPC small data is now supported. Small data is a system wide maximum 64K
region of memory controlled by the compiler. Access to data in this region is
typically faster because a small relative offset is used. Libdl now has an 
allocator for this memory and it can allocate space to loaded object files. The
space available is determined by the linker command file for the BSP. Currently
the psim BSP allocates the maximum space. Other PowerPC BSPs will need to have
space allocated for some of the DL test ito pass.

There are other small fixes including a memory leak.


More information about the devel mailing list