summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-06-18 11:10:39 +0000
committerkib <kib@FreeBSD.org>2010-06-18 11:10:39 +0000
commitf26dfb440a0d48a874435768ee94475ddbe496a2 (patch)
tree3632d228810fd8a8d4da7ac8c88e0760e544a102
parent056723449a64f6bd8fd42529e077378e2b34733c (diff)
downloadFreeBSD-src-f26dfb440a0d48a874435768ee94475ddbe496a2.zip
FreeBSD-src-f26dfb440a0d48a874435768ee94475ddbe496a2.tar.gz
Add unwind annotations to the asm part of crt1 on i386. Terminate the
process with SIGTRAP if _start1() unexpectedly returns. Reviewed by: kan MFC after: 2 weeks
-rw-r--r--lib/csu/i386-elf/crt1_s.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/csu/i386-elf/crt1_s.S b/lib/csu/i386-elf/crt1_s.S
index 2af8a1b..949d164 100644
--- a/lib/csu/i386-elf/crt1_s.S
+++ b/lib/csu/i386-elf/crt1_s.S
@@ -30,15 +30,22 @@
.align 4
.globl _start
.type _start, @function
-_start: xorl %ebp,%ebp
+_start:
+ .cfi_startproc
+ xorl %ebp,%ebp
pushl %ebp
+ .cfi_def_cfa_offset 4
movl %esp,%ebp
+ .cfi_offset %ebp,-8
+ .cfi_def_cfa_register %ebp
andl $0xfffffff0,%esp # align stack
leal 8(%ebp),%eax
pushl %eax # argv
pushl 4(%ebp) # argc
pushl %edx # rtld cleanup
call _start1
+ int3
+ .cfi_endproc
.size _start, . - _start
.ident "$FreeBSD$"
OpenPOWER on IntegriCloud