Python RAP and Reloc related for RTL

Peng Fan van.freenix at gmail.com
Wed Aug 6 10:18:43 UTC 2014


2014-08-05 12:23 GMT+08:00 Chris Johns <chrisj at rtems.org>:

> On 4/08/2014 12:18 am, Peng Fan wrote:
>
>> Hi,
>>
>> Create this new thread to talk about this topic and the reloc related.
>>
>> 1.
>> As you suggested, I have compiled toolchain for arm using option
>> `-mlong-calls` on arm realview qemu platform, and now the python.rap
>> file can be correctly loaded and python interpreter can run the xxx.py
>> in startup like this `rap ld ./python-library.rap  tmp a.py`.
>>
>
> Nice. How big is the RAP file ?
>
About 1.1M, the py files are not included, only include c files.

>
> Having to use the '-mlong-calls' option is hack. I think we need to teach
> the target code for ARM to add a veneer. Section 5.3.1.1 in
> http://infocenter.arm.com/help/topic/com.arm.doc.
> ihi0042e/IHI0042E_aapcs.pdf indicates this but does not seem to detail
> the process. I am not sure how this is actually done or what we are
> required to do.
>
> Hmm.Modify saying R_ARM_CALL/JUMP24 near reloc to R_ARM_ABS32 is not easy.
I'll take time to hack this.

>
>  A small hack should be done is about gcc search dirs. I'll try to fix
>> this later.
>>
>
> What is the issue ? It would be good to have a record of it archived.

There is something wrong with file details accutally the file paths that
gdb can not correctly load the compiled object files. I have not look into
this, maybe gdb source code or rtl-host does not handle this correctly.

>
>
>
>> Another issue is that, when python rap is loaded without and py file
>> passed to it, it can not respond to input. The msg output is :
>>
>> RTEMS SHELL (Ver.1.0-FRC):/dev/console. Aug  3 2014. 'help' to list
>> commands.
>> [/] # rap ld ./python-library.rap
>> rtl: loading './python-library.rap'
>> rtl: rap: input machine=0
>> rtl: rap: machinetype=40
>> rtl: rap: datatype=1
>> rtl: rap: class=1
>> rtl: rap: input header=12
>> rtl: rap: load: symtab=16068 (1339) strtab=23867 relocs=0
>> rtl: rap: input .text=32948
>> rtl: rap: input .const=1088028
>> rtl: rap: input .data=1233652
>> rtl: rap: input symbols=1465241
>> rtl: rap: input relocs=1505176
>> Could not find platform independent libraries <prefix>
>> Could not find platform dependent libraries <exec_prefix>
>> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
>> Python 2.7.8 (default, Aug  3 2014, 21:17:53)
>> [GCC 4.8.3 20140522 (RTEMS
>> 4.11-RSB-7c46699472b0d0adea2010f735722e2610c8c6ae-1, on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>  >>>
>>
>> It does not respond to input, any ideas about this?
>>
>>
> This looks like a qemu or BSP issue. Python expects some site specific
> python files. I cannot remember what this looks like for RTEMS. Maybe the
> old ftp tarball I once uploaded will give you an idea.
>
Thanks.

>
> If Python calling exit so halting the target ?

it can correctly execute py files when start the python-library.rap, and
after finished the py executing, shell is fine with input and output. but
if only load python-library.rap with no py files passed to it, python shell
does not respond with ">>>".

>
>
>  2. I have not tried on sparc sis, because it's memory is small. How to
>> modify it's memory size in sis-gdb?
>>
>
> I seem to remember an option you can provide with 'target sim'. Maybe a -?
> will provide some help.

Ok. I try.

Regards,
Peng.

>
>
> Chris
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20140806/697f608f/attachment-0002.html>


More information about the devel mailing list