Since the ENTRY/END macros now have .cfi_startproc/.cfi_endproc, most of the custom arm assembly has no unwind information. Adding the proper cfi directives for these and removing the arm directives. Update the gensyscalls.py script to add these cfi directives for the generated assembly. Also fix the references to non-uapi headers to the proper uapi header. In addition, remove the kill.S, tkill.S, tgkill.S for arm since they are not needed at all. The unwinder (libunwind) is able to properly unwind using the normal abort. After this change, I can unwind through the system calls again. Bug: 11559337 Bug: 11825869 Bug: 11321283 Change-Id: I18b48089ef2d000a67913ce6febc6544bbe934a3
		
			
				
	
	
		
			23 lines
		
	
	
		
			523 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			523 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/* Generated by gensyscalls.py. Do not edit. */
 | 
						|
 | 
						|
#include <private/bionic_asm.h>
 | 
						|
 | 
						|
ENTRY(pwrite64)
 | 
						|
    mov     ip, sp
 | 
						|
    stmfd   sp!, {r4, r5, r6, r7}
 | 
						|
    .cfi_def_cfa_offset 16
 | 
						|
    .cfi_rel_offset r4, 0
 | 
						|
    .cfi_rel_offset r5, 4
 | 
						|
    .cfi_rel_offset r6, 8
 | 
						|
    .cfi_rel_offset r7, 12
 | 
						|
    ldmfd   ip, {r4, r5, r6}
 | 
						|
    ldr     r7, =__NR_pwrite64
 | 
						|
    swi     #0
 | 
						|
    ldmfd   sp!, {r4, r5, r6, r7}
 | 
						|
    .cfi_def_cfa_offset 0
 | 
						|
    cmn     r0, #(MAX_ERRNO + 1)
 | 
						|
    bxls    lr
 | 
						|
    neg     r0, r0
 | 
						|
    b       __set_errno
 | 
						|
END(pwrite64)
 |