Dynamic linking in RTEMS

Pavel Pisa pisa at cmp.felk.cvut.cz
Tue Jul 19 15:12:46 UTC 2016


Hello Saeed,

libdl had been merged to RTEMS mainline.

https://git.rtems.org/rtems/tree/cpukit/libdl

There is even example how to use it in mainline
and shell functions for test from commandline

int shell_dlopen (int argc, char* argv[]);
int shell_dlclose (int argc, char* argv[]);
int shell_dlsym (int argc, char* argv[]);
int shell_dlcall (int argc, char* argv[]);

The test cases are included in mainline as well

https://git.rtems.org/rtems/tree/testsuites/libtests/dl01

https://git.rtems.org/rtems/tree/testsuites/libtests/dl02

There is some my example for dlopen shell command as well.

https://rtime.felk.cvut.cz/gitweb/rtems-devel.git/blob/HEAD:/rtems-omk-template/appdl/init.c

I have posted recently cache operations patches series
which is pending comments. This includes some corrections
required to synchronize caches after code load and relocate.
These patches are required to use libdl on CPUs
where instruction cache is not snooped/synchronized
automatically (most RISCs, ARM, PowerPC etc.).  

Best wishes
                Pavel
--

                Pavel Pisa
    e-mail:     pisa at cmp.felk.cvut.cz
    www:        http://cmp.felk.cvut.cz/~pisa
    university: http://dce.fel.cvut.cz/
    company:    http://www.pikron.com/

On Tuesday 19 of July 2016 11:57:47 Saeed Ehteshamifar wrote:
> Hi,
>
> For the slingshot (RTEMS fault-injection tool) I need to dynamically link
> test cases into the test suite(s) and execute them on-the-fly.
> With a google search on "rtems libdl", I found two pointers for libdl:
>
> 1. https://git.rtems.org/chrisj/rtl.git/
> https://git.rtems.org/chrisj/rtl-host.git/
>
> 2. https://git.rtems.org/rtems/tree/cpukit/libdl
>
> Now my question is: Has libdl already been merged in the tree, as the
> second pointer suggests? And if yes, are there examples available maybe in
> the testsuite folder on how to use that?
>
> Best Regards,
> Saeed



More information about the devel mailing list