<div dir="ltr">Hi,<div><br></div><div class="gmail_extra"><br><div class="gmail_quote">2014-07-26 9:28 GMT+08: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"><div class="">On 26/07/2014 12:25 am, Peng Fan wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Chris,<br>
<br>
I build a rap file using such a command :<br>
rtems-ld --lib-path<br>
/opt/rtems-4.11/arm-rtems4.11/<u></u>realview_pbx_a9_qemu/lib --lib m --lib<br>
rtemscpu --lib rtemsbsp --base rtld.prelink --entry  rtems a.o b.o c.o<br>
*.o ...<br>
Is this ok? can reference a symbol in librtemscpu.a librtemsbsp.a? or<br>
the reference symbol from librtemscpu.a librtemsbsp.a should be included<br>
in the base image but not in the rap file?<br>
</blockquote>
<br></div>
This is fine. You do not need to load a base image with everything you might need.<br>
<br>
If you create another RAP file and do the same thing and that RAP pulls the same code in from one of those libraries it will not be linked to. Rather the first instance of the code loaded is used. The downside is a possible waste of code.<br>
</blockquote><div>Yeah.Other RAP file which references the same code that already in the first rap should not pull the same code into the final image. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
I suppose we could add code to compact the memory and not loaded the object file and so the overhead is limited to the RAP file.</blockquote><div>Sorry. I can not got this. what code should be added to rtl-host? </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I set rtems_linkflags like this:<br>
         rtems_linkflags = ['--base', 'rtld.prelink',<br>
                            '--lib-path',<br>
'/opt/rtems-4.11/arm-rtems4.<u></u>11/realview_pbx_a9_qemu/lib',<br>
                            '--entry', 'my_main', '--lib', 'm', '--lib',<br>
'rtemscpu' , '--lib', 'rtemsbsp'],<br>
But waf only uses one '--lib', it removes the other two '--lib', like<br>
this: xxx '--entry', 'my_main', '--lib', 'm', 'rtemscpu', 'rtemsbsp',xxx<br>
I am not familar with waf, any advice about his?<br>
</blockquote>
<br></div>
Try using LIBS and adding to that. Getting the order correct can be tricky.</blockquote><div>To bld whose feature is 'c program', libs = ['m', 'xxx'] works. But to 'c rap' which is defined in RTL, adding libs to bld of waf does not work. So I wrote a patch to fix this, the patch first clear the RTEMS_LINKFLAGS env, then refill it. The patch is in the attachments.</div>
<div><br></div><div>Regards,</div><div>Peng.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888"><br>
<br>
Chris<br>
</font></span></blockquote></div><br></div></div>