About "Add per-section compilation and linking support" and libdl
Chris Johns
chrisj at rtems.org
Sat Jan 16 05:07:35 UTC 2016
On 16/01/2016 2:15 AM, Сергей Круглов wrote:
> I succesfully use libdl with mips processors (R300 with small correct
> resole mips16 relocs).
Do you have a patch for this?
> RTEMS 4.11 and 4.12
> 1. After patch rtems “Add per-section compilation and linking support"
> image size reduce 811400 –> 653864.
> It’s OK, but now rap file generate incorrectly and not load.
> Test program only get and print lists tasks, semaphores, messages, periiods.
> Without per-section compilation symbol map:
> size align offset
> .text: 2000 16 0x00000054 (84)
> .const: 368 0 0x00000824 (2084)
> .ctor: 0 0 0x00000994 (2452)
> .dtor: 0 0 0x00000994 (2452)
> .data: 0 16 0x00000994 (2452)
> .bss: 0 16 -
> strtab: 82 - 0x00000994 (2452)
> symtab: 48 - 0x000009e6 (2534)
> relocs: 1332 - 0x00000a16 (2582)
> Details: 0x00000020 (32)
> No details
> Strings: 0x00000994 (2452) size: 82
> 0 (0x000000):
> 1 (0x000001): rtems
> 2 (0x000007): _Heap_Get_information
> 3 (0x00001d): _Heap_Iterate
> 4 (0x00002b): _Protected_heap_Get_information
> 5 (0x00004b): rtems
> 6 (0x000051):
> Symbols: 0x000009e6 (2534) size: 48
> data section value name
> 0: 0x0012 .text 0x00000000 rtems
> 1: 0x0012 .text 0x00000000 _Heap_Get_information
> 2: 0x0012 .text 0x00000000 _Heap_Iterate
> 3: 0x0012 .text 0x00000000 _Protected_heap_Get_information
>
> With per-section compilation symbol map:
> size align offset
> .text: 2404 16 0x00000054 (84)
> .const: 368 0 0x000009b8 (2488)
> .ctor: 0 0 0x00000b28 (2856)
> .dtor: 0 0 0x00000b28 (2856)
> .data: 4 16 0x00000b28 (2856)
> .bss: 0 16 -
> strtab: 156 - 0x00000b2c (2860)
> symtab: 96 - 0x00000bc8 (3016)
> relocs: 1488 - 0x00000c28 (3112)
> Details: 0x00000020 (32)
> No details
> Strings: 0x00000b2c (2860) size: 156
> 0 (0x000000):
> 1 (0x000001): rtems
> 2 (0x000007): rtems_object_get_name
> 3 (0x00001d): _Heap_Get_information
> 4 (0x000033): _Heap_Iterate
> 5 (0x000041): _Objects_Get_name_as_string
> 6 (0x00005d): _Protected_heap_Get_information
> 7 (0x00007d): putchar
> 8 (0x000085): BSP_output_char
> 9 (0x000095): rtems
> 10 (0x00009b):
> Symbols: 0x00000bc8 (3016) size: 96
> data section value name
> 0: 0x0012 .text 0x00000000 rtems
> 1: 0x0012 .text 0x00000000 rtems_object_get_name
> 2: 0x0012 .text 0x00000000 _Heap_Get_information
> 3: 0x0012 .text 0x00000000 _Heap_Iterate
> 4: 0x0012 .text 0x00000000 _Objects_Get_name_as_string
> 5: 0x0012 .text 0x00000000 _Protected_heap_Get_information
> 6: 0x0012 .text 0x00000000 putchar
> 7: 0x0011 .data 0x00000000 BSP_output_char
>
> Dynamic loader say: Duplicate symbol BSP_output_char
> and stop loading.
This is strange. I suspect a bug has been triggered.
>
> 2. Also after allocate .bss section it not zeroed and static
> uninitialized symbols have undefined value.
> In standart linker bss section zeroed in startup procedure.
> May be need memset after allocate bss section?
>
I suspect the bug is causing the same problem.
Can you please raise a ticket in Trac and document the configure command
line for RTEMS plus attach an example main for RTEMS, the app code and a
script to build them. I can then take a closer look.
Thanks
Chris
More information about the users
mailing list