[Glibc-bsd-commits] r1570 - trunk/glibc-2.3-head/sysdeps/kfreebsd/i386

Petr Salinger ps-guest at costa.debian.org
Sun May 21 19:24:01 UTC 2006


Author: ps-guest
Date: 2006-05-21 19:24:00 +0000 (Sun, 21 May 2006)
New Revision: 1570

Modified:
   trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S
   trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S
   trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S
   trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S
Log:
 cfi marking


Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S	2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/rfork.S	2006-05-21 19:24:00 UTC (rev 1570)
@@ -33,6 +33,7 @@
 	andl %edx, %eax
 
 	popl %edx
+	cfi_adjust_cfa_offset(-4)
 	jmp  *%ecx
 
 L(pseudo_end):

Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S	2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/start_thread.S	2006-05-21 19:24:00 UTC (rev 1570)
@@ -28,6 +28,10 @@
 
 	.text
 ENTRY (__start_thread)
+	/* End FDE now, because in the child the unwind info will be
+	   wrong.  */
+	cfi_endproc
+
 	/* There is a window of a few instructions, right after the rfork
 	   system call, where the handling of a signal would write garbage
 	   into the stack shared by the parent and the child (assuming
@@ -199,4 +203,5 @@
 	popl	%ebx
 	popl	%ebp
 	jmp	SYSCALL_ERROR_LABEL
+	cfi_startproc
 PSEUDO_END (__start_thread)

Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S	2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/syscall.S	2006-05-21 19:24:00 UTC (rev 1570)
@@ -21,9 +21,11 @@
 	  .text;
 ENTRY (syscall)
 	popl %ecx		/* Pop return address into %ecx.  */
+	cfi_adjust_cfa_offset (-4)
 	movl 0(%esp), %eax	/* Load syscall number into %eax. */
 	int $0x80		/* Do the system call.  */
 	pushl %ecx		/* Push back return address.  */
+	cfi_adjust_cfa_offset (4)
 	jb SYSCALL_ERROR_LABEL;	/* Jump to error handler if error.  */
 
 L(pseudo_end):

Modified: trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S
===================================================================
--- trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S	2006-05-17 09:43:59 UTC (rev 1569)
+++ trunk/glibc-2.3-head/sysdeps/kfreebsd/i386/vfork.S	2006-05-21 19:24:00 UTC (rev 1570)
@@ -27,6 +27,7 @@
 
 	/* Pop the return PC value into ECX.  */
 	popl	%ecx
+	cfi_adjust_cfa_offset(-4)
 
 	/* Perform the system call.  */
 	DO_CALL (vfork, 0)
@@ -45,6 +46,7 @@
 L(error):
 	/* Push back the return PC.  */
 	pushl	%ecx
+	cfi_adjust_cfa_offset(4)
 
 	/* Branch to the error handler, hidden in PSEUDO_END.  */
 	jmp	SYSCALL_ERROR_LABEL




More information about the Glibc-bsd-commits mailing list