<div dir="ltr">Dear Chris,<div><br></div><div>Your comment is very useful for me.</div><div><br></div><div>Thanks you.</div><div><br></div><div>Best Regards.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-11-03 19:45 GMT+09:00 Chris Johns <span dir="ltr"><<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 3/11/2014 9:00 pm, Thomas Kim wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Sir,<br>
<br>
I checked that RTEMS runtime linker was updated on main tree.<br>
<br>
I would like to know something before testing RTEMS run-time linker.<br>
<br>
</blockquote>
<br>
Thank you for the question.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I am guessing that RTEMS run-time linker is different with linux dynamic<br>
linking with shared library(*.so.*).<br>
</blockquote>
<br>
RTEMS does not follow the ELF method of supporting shared libraries you find in Linux.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I hope that RTEMS run-time linker is same concept with Linux dynamic<br>
linking with shared library.<br>
<br>
</blockquote>
<br>
The libdl code in RTEMS loads code at runtime so in that sense it is the same. It however locates relocatable code performing fix ups on code as it is loaded which produces the same result as if you had statically linked it. This is some documentation on the topic:<br>
<br>
<a href="http://www.rtems.org/ftp/pub/rtems/people/chrisj/rtl/rtems-rtl.html" target="_blank">http://www.rtems.org/ftp/pub/<u></u>rtems/people/chrisj/rtl/rtems-<u></u>rtl.html</a><br>
<a href="http://www.rtems.org/ftp/pub/rtems/people/chrisj/rtl/rtems-linker/" target="_blank">http://www.rtems.org/ftp/pub/<u></u>rtems/people/chrisj/rtl/rtems-<u></u>linker/</a><br>
<br>
The shared library model provided in operating systems such as FreeBSD and Linux is as much about sharing code in the physical memory between a number of processes as it is about dynamic loading and the ability to share the code is very important. RTEMS is a single address space, single process system and so there is no need to share code. The performance of the loaded code should match the performance you would get if you had statically linked it, ie deterministic behaviour, and that is what we have achieved. If the code runs slow, even a small amount users would end up just statically linking. The other side of this is the need to perform some specific link type processing on the host to manage the process of creating loadable code plus we need to have the symbols on the target to link and this uses memory.<br>
<br>
I hope this helps.<span class="HOEnZb"><font color="#888888"><br>
<br>
Chris<br>
</font></span></blockquote></div><br></div>