This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Interpretation of DWARF FDE->CIE_pointer field for .debug_frame


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]