From 98929e8018371c8847c69ea1ed8e88f82b5df83a Mon Sep 17 00:00:00 2001 From: root Date: Fri, 27 Apr 2007 19:26:18 +0000 Subject: *** empty log message *** --- coro.c | 12 ++++++++++++ coro.h | 1 + 2 files changed, 13 insertions(+) diff --git a/coro.c b/coro.c index b297aa3..d02c4db 100644 --- a/coro.c +++ b/coro.c @@ -67,6 +67,12 @@ static volatile coro_func coro_init_func; static volatile void *coro_init_arg; static volatile coro_context *new_coro, *create_coro; +/* what we really want to detect here is wether we use a new-enough version of GAS */ +/* instead, check for gcc 3 and ELF and hope for the best */ +#if __GNUC__ >= 3 && __ELF__ +# define HAVE_CFI 1 +#endif + static void coro_init (void) { @@ -75,7 +81,13 @@ coro_init (void) coro_transfer ((coro_context *)new_coro, (coro_context *)create_coro); +#if HAVE_CFI + asm (".cfi_startproc"); +#endif func ((void *)arg); +#if HAVE_CFI + asm (".cfi_endproc"); +#endif /* the new coro returned. bad. just abort() for now */ abort (); diff --git a/coro.h b/coro.h index 788810f..0293293 100644 --- a/coro.h +++ b/coro.h @@ -39,6 +39,7 @@ * 2006-10-26 Include stddef.h on OS X to work around one of its bugs. * Reported by Michael_G_Schwern. * 2006-11-26 Use _setjmp instead of setjmp on GNU/Linux. + * 2007-04-27 Set unwind frame info if gcc 3+ and ELF is detected. */ #ifndef CORO_H -- cgit v1.2.3