libdl documentation?

Chris Johns chrisj at rtems.org
Wed Oct 18 19:11:27 UTC 2023


On 18/10/2023 7:21 pm, Sebastian Huber wrote:
> I tried to get a bit more familiar with the libdl. Is there some documentation
> available? I tried the user manual, but I see only a work in progress page:
> 
> https://docs.rtems.org/branches/master/user/tools/linker.html

There is this https://git.rtems.org/rtems-tools/tree/linkers/main-page.cpp which
has not been moved across.

> For example, I can use dlopen() to load an object file (ELF). For what do I need
> RAP files?

RAP requires use of the linker. It has some issues that need to be addressed to
be at the same level as the ELF loader. For example I have not looked into TLS
and there is the failure of the tests in the testsuite (dl06).

RAP is an intermediate format where a lot of the required linking can be done on
the host and the file set you need for the target can be collected. This lets
you have a golden base image and a single loadable application.

> Can I load also archives? It seems this can be done through configuration files.
> Are there API calls to do this?

Currently there is no API call available. One could be added if you feel it is
required. I decided you need a valid file system for loading to work so a
configuration file was the simplest method.

Loading from archives is done via the /etc/libdl.conf file:

https://git.rtems.org/rtems/tree/testsuites/libtests/dl10/etc/libdl.conf

The file can be updated at runtime and it is checked on each load for changes.

Note, I did some initial analysis for this at the time the change was made and
if you use runlib on the archives before loading the symbol table for libraries
like libc is manageable.

Chris


More information about the devel mailing list