On 06/25/2013 12:35 AM, Richard Henderson wrote:
> On 06/24/2013 12:37 AM, Vineet Gupta wrote:
>> Aha, I see what's happening. For historical reasons, ARC Linux kernel stack
>> unwinder relies on .debug_frame (vs. .eh_frame) for stack unwinding. Being 
>> non
>> allocatable it would default to address zero hence the orig absolute 
>> relocations
>> would work for most ports. However in our case we force it allocatable in 
>> kernel
>> builds and thus it is relocated to 0x8abcdefg, thus the usage of absolute
>> relocations ends up generating the invalid reference.
>>
>> Thus it seems we do need the special section relative reference.
>>
>> Thanks a bunch for clarifying.
> It seems like it would be easier to change the kernel to use .eh_frame
> rather than adding relocation types and changing the tool chain...

Yes that is what we concluded as well. Although the current issue manifests only
as objdump/readelf splat with kernel binary - the unwinder itself in kernel 
works
OK. But .eh_frame is what others do so we might as well follow suite given that
ARC gcc 4.8 now has started generating one.

-Vineet

Reply via email to