This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports 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: Adding CFI statements to ARM's assembly code


Hello!

On 2010-01-12 14:52, Daniel Jacobowitz wrote:
> On Tue, Jan 12, 2010 at 02:35:41PM +0100, Thomas Schwinge wrote:
>> Does sysdeps/unix/sysv/linux/arm/eabi/sigrestorer.S need any treatment?
>> It's probably not worth it.
>
> I'm a bit confused about that one.  Doesn't ENTRY now generate
> .cfi_startproc?  There's nothing to generate .cfi_endproc, and I
> thought a mismatch would fail to compile.

You're correct, but that was part of an earlier patch:
<http://sourceware.org/ml/libc-ports/2009-12/msg00021.html>

> The signal restorer functions are somewhat special.  It's easiest to
> not give them CFI, because GDB and GCC know how to handle them if they
> don't have CFI.  If you do, we have to be pretty careful with it
> (and e.g. use .cfi_signal_frame).

In my reading of binutils' gas/dw2gencfi.c, .cfi_signal_frame is not
relevant to .debug_frame sections, but only to .eh_frame (which on the
other hand is not relevant for ARM); cf. use of signal_frame in
output_cie.  But perhaps I'm missing something?


>> In sysdeps/unix/sysv/linux/arm/eabi/sysdep.h:INTERNAL_SYSCALL_RAW for
>> [__thumb__], should we, depending on defined (__GCC_HAVE_DWARF2_CFI_ASM),
>> emit CFI statements to handle r7's modification and restoral?  We can't
>> emit CFI statements unconditionally, as it's GCC's decision whether to
>> emit .cfi_startproc or not, and in the latter case we're not allowed to
>> using them in inline assembly.
>
> In theory, we ought to.  It's not very important since only r7 is
> affected.

Shall I put a comment into the code then?


Regards,
 Thomas

Attachment: pgp00000.pgp
Description: PGP signature


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