gas relocations for .uleb128

M R Swami Reddy MR.Swami.Reddy@nsc.com
Mon Aug 10 10:00:00 GMT 2009


>> What I am thinking is: in gas, add .leb128 processing (ie target specific)
>> and include the relocs if needed (ie similar to .long directive processing).
>> Is this ok?
>>     
>
> The expression you showed calculated the difference of two symbols in
> another section.  That means your new reloc would need to reference
> two symbols.  How are you going to do that?
>   
The cr16 port doing the above with two relocs and those will
be relocs will be resolved during the final link stage.
=== test.s:
===
.L1:
        nop
.L2:
        nop
        .section        .eh_frame,"a",@progbits
.L3:
    .long .L2-.L1
==================
===
00000000 <.eh_frame>:
   0:   00 00           illegal
                        0: R_CR16_SYM_DIF       .L1
                        0: R_CR16_NUM32 .L2
===

NOTE: Above code changes yet to check-in gas cvs repo.

> You need to use debug and eh_frame encoding that is friendly towards
> relaxation.  If you want to emit more efficiently encoded dwarf, add
> support in the linker to rewrite dwarf.  This isn't a trivial
> exercise.
>
>   




More information about the Binutils mailing list