Removing RTTI from binaries

Mike via D.gnu d.gnu at puremagic.com
Tue Jan 13 19:07:19 PST 2015


On Tuesday, 13 January 2015 at 14:20:43 UTC, Mike wrote:
>
> Here's what I'm seeing:
>
> --------------------
> arm-none-eabi-objdump -t binary/firmware
>
> binary/firmware:     file format elf32-littlearm
>
> SYMBOL TABLE:
> 08000000 l    d  .text  00000000 .text
> 08000a44 l    d  .rodata        00000000 .rodata
> 00000000 l    df *ABS*  00000000 start.d
> 0800001c l       .text  00000000 handler_address
> 00000000 l       *UND*  00000000 __aeabi_unwind_cpp_pr0
> 00000000 l       *UND*  00000000 __aeabi_unwind_cpp_pr1
> 00000000 l    df *ABS*  00000000
> 10010000 l       *ABS*  00000000 _stackStart
> 08000034 g     F .text  0000007e memcpy
> 08000010 g     F .text  00000014 _D5start7OnResetFZv
> 080202d4 g       .rodata        00000000 __text_end__
> 08000004 g     O .text  00000004 ResetHandler
> 20000000 g       .rodata        00000000 __data_end__
> 20000000 g       .rodata        00000000 __bss_start__
> 20000000 g       .rodata        00000000 __bss_end__
> 08000024 g     F .text  00000010 memset
> 20000000 g       .rodata        00000000 __data_start__
> 0800000c g     O .text  00000004 HardFaultHandler
> 080000b4 g     F .text  0000093c main
> 08000a28 g     F .text  0000001c _D5start11OnHardFaultFZv
>

I just wanted to show off our shiny new demangle support in
binutils for comparison with my previous post.

-----------------------------
arm-none-eabi-objdump --demangle=dlang -t binary/firmware

binary/firmware:     file format elf32-littlearm

SYMBOL TABLE:
08000000 l    d  .text  00000000 .text
08000380 l    d  .rodata        00000000 .rodata
00000000 l    df *ABS*  00000000 start.d
0800001c l       .text  00000000 handler_address
00000000 l       *UND*  00000000 __aeabi_unwind_cpp_pr0
00000000 l    df *ABS*  00000000
10010000 l       *ABS*  00000000 _stackStart
08000034 g     F .text  0000007e memcpy
08000010 g     F .text  00000014 start.OnReset()
0801fb78 g       .rodata        00000000 __text_end__
08000004 g     O .text  00000004 ResetHandler
20000000 g       .rodata        00000000 __data_end__
20000000 g       .rodata        00000000 __bss_start__
20000000 g       .rodata        00000000 __bss_end__
08000024 g     F .text  00000010 memset
0800032c  w    F .text  00000038
trace.writeLine!(immutable(char)[]).writeLine(const(immutable(char)[]))
20000000 g       .rodata        00000000 __data_start__
0800000c g     O .text  00000004 HardFaultHandler
080000b4 g     F .text  00000278 main
08000364 g     F .text  0000001c start.OnHardFault()

Nice! Thanks Iain.


More information about the D.gnu mailing list