Some runtime linker bugs

Serg Kruglov skruglov1962 at gmail.com
Mon Mar 31 17:40:11 UTC 2014


I use runtime linker with mips bsp (custom, genmongoose based) and find some bugs:
1. Incorrect work “rtems_rtl_match_name”  (or generate oname field).
dlo /nv/x.rap
dlo /nv/tst2.rap
oname1=fname1=/nv/x.rap
oname2=fname2=/nv/tst2.rap and rtems_rtl_match_name compare to ‘/’ and say name matched.

if dlo x.rap
dlo tst2.rap – all ok, name different

2. if with one session load two or more applications (rap files) with different options –rap-strip – loader generate fatal error in linkmap.
x.rap – linked without –rap-strip
tst2.rap – linked with –rap-strip

dlo tst2.rap
dlo x.rap
  all ok

dlo x.rap
dlo tst2.rap
  fatal error
may be not found check?

3. Only from MIPS
Relocate procedure is designed strictly for the use of pair loading %hi and %lo, but gcc after optimizations violates this order and can generate several unpaired operators. (option –mlong-calls does not help).
Standard ld from binutils for hi relocations make chain list and resolve it in lo relocations. I make it (may incorrect, but )
Attach diff file for rtl-mdreloc-mips.c


-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 4693 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20140331/719993b4/attachment.png>
-------------- next part --------------





Send from iPhone.


More information about the users mailing list