<div dir="ltr">Hi,<div><br><div><div>qemu-system-arm -no-reboot -net none -nographic -M realview-pbx-a9 -m 256M -kernel `find . -name dl01.exe` -s -S</div><div><br></div><div>*** BEGIN OF TEST libdl (RTL) Loader 1 ***</div><div>load: /dl-o1.o</div><div>rtl: unsupported section: 15: type=1879048195 flags=00</div><div>handle: 0x212b10 has unresolved externals</div></div></div><div><br></div><div>dl-o1.o can not be correctly loaded, because of unresolved symbols.</div><div>I do some debug using remote gdb and found it is the reloc entry references local symbols named "LCx" saying "LC0", "LC1", "LC2".</div><div><br></div><div><div>Freenix@linux-jyl1:~/per/new/build-arm> arm-rtems4.11-readelf -s `find . -name dl-o1.o`</div><div><br></div><div>Symbol table '.symtab' contains 22 entries:</div><div>   Num:    Value  Size Type    Bind   Vis      Ndx Name</div><div>     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND </div><div>     1: 00000000     0 FILE    LOCAL  DEFAULT  ABS dl-o1.c</div><div>     2: 00000000     0 SECTION LOCAL  DEFAULT    1 </div><div>     3: 00000000     0 SECTION LOCAL  DEFAULT    3 </div><div>     4: 00000000     0 SECTION LOCAL  DEFAULT    4 </div><div>     5: 00000000     0 SECTION LOCAL  DEFAULT    5 </div><div>     6: 00000000     0 NOTYPE  LOCAL  DEFAULT    5 $d</div><div><b>     7: 00000000     0 NOTYPE  LOCAL  DEFAULT    5 .LC0</b></div><div><b>     8: 00000020     0 NOTYPE  LOCAL  DEFAULT    5 .LC1</b></div><div><b>     9: 00000068     0 NOTYPE  LOCAL  DEFAULT    5 .LC2</b></div><div>    10: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 $t</div><div>    11: 00000000     0 SECTION LOCAL  DEFAULT    6 </div><div>    12: 00000000     0 SECTION LOCAL  DEFAULT    8 </div><div>    13: 00000000     0 SECTION LOCAL  DEFAULT    9 </div><div>    14: 00000000     0 SECTION LOCAL  DEFAULT   11 </div><div>    15: 00000000     0 SECTION LOCAL  DEFAULT   13 </div><div>    16: 00000010     0 NOTYPE  LOCAL  DEFAULT   16 $d</div><div>    17: 00000000     0 SECTION LOCAL  DEFAULT   16 </div><div>    18: 00000000     0 SECTION LOCAL  DEFAULT   14 </div><div>    19: 00000000     0 SECTION LOCAL  DEFAULT   15 </div><div>    20: 00000001    88 FUNC    GLOBAL DEFAULT    1 rtems_main</div><div>    21: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND printf</div></div><div><br></div><div>The LCx symbols's type is NOTYPE and not included in the rtl symbol table(local symbol may should not be included). In rtl-elf.c, line 387 see following, the LCx symbols are not included, so fails. I prefer that if unresolved symbols detected in rtl, detailed info should be print out, but i found no debug msg about this.</div><div><br></div><div><div>384     /*                                                                          </div><div>385      * Only keep the functions and global or weak symbols.                      </div><div>386      */                                                                         </div><div>387     if ((ELF_ST_TYPE (symbol.st_info) == STT_OBJECT) ||                         </div><div>388         (ELF_ST_TYPE (symbol.st_info) == STT_FUNC))</div></div><div><br></div><div>I think this cause arm load failed. FYI, rap file are not included in the dl test?</div><div><br></div><div>Regards,</div><div>Peng.</div></div>