Pass multiple same options to rtems_linkflags

Chris Johns chrisj at rtems.org
Tue Jul 29 03:00:55 UTC 2014


On 29/07/2014 12:15 am, Peng Fan wrote:
>
>              We are in need of user documentation for the RTL code.
>
>         Hah! what kind of doc do you prefer? doxgen doc in patch format
>         or just
>         wiki?  And the documentation is about how to let user can easily
>         integrate RTL into his/her application?
>
>
>     Yes, something about how to use the RTL, rtems-ld and what happens
>     with applications.
>
> ok. I take time to update the wiki with what I have got.
>

Thanks.

>
>
>
>         Currently, I am more concerned about another problem which we talked
>         about when I load python rap and you also talked about with sebh.
>         lets say that we have a.o b.o c.o and the three .o files references
>         symbols in libc.a libm.a librtemscpu.a librtemsbsp.a.
>         Because libc.a libm.a librtemscpu.a librtemsbsp.a is not compile
>         with
>         -mlong-calls, so if the rap file is big enough, RTL target may
>         fail to
>         load the rap file since reloc entry from libxx.a is near jump,
>         but dest
>         symbol is in far away.
>
>
>     I remember but I am not sure of the detail any more. Does the gnu ld
>     perform some sort of fix up when it does a static link ?
>
>     Is this is on the sparc target ?
>
> I only test it on ARM realview qemu platform.  I did not dig into bfd
> library, but i think ld can handle it using bfd lib.
>

Ah ok ARM.

>
>
>         I am hacking it these few days, but still do not have a good idea,
>         because it is hard to convert reloc entry in libxxx.a from near
>         reference to far reference as '-mlong-call' does.
>
>
>     The RSB lets you add target specific options. I know it is hack but
>     it might help. Check rtems/config/4.11/rtems-m32c.__bset for an
>     example. Maybe you can add the -mlong-call to the sparc build to see
>     what happens.
>
> using -mlong-call to compile rtems may only make librtemscpu.a and
> librtemsbsp.a not use relative reloc. To libc.a and libm.a and libgcc.a,

Using the RSB and the options I suggested rebuilds libc etc. It is still 
a bad hack.

> it may not help.Hack rtl-host or ld bfd may help ,but may add arch
> sepecific code to rtl-host which is not a good idea.

Yeah it would be nice if rtems-ld could stay neutral but if it cannot 
then that is how it is. If we can keep the platform specific parts 
separate with a suitable class interface it should be ok.

What would rtems-ld have to do on ARM to fix this problem ?

> I'll try it on sparc sis.

Great.

Chris



More information about the devel mailing list