summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2011-05-30 02:32:06 +0000
committerroot <root>2011-05-30 02:32:06 +0000
commit5ebaff033d86feaa7ef3df94e8f72259e0340c80 (patch)
treec0f8b004cfd1a3b455ffd72978474ba5964d33fa
parent4629f0317532027f90b394ef51f76df36050f39e (diff)
*** empty log message ***
-rw-r--r--coro.c7
-rw-r--r--coro.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/coro.c b/coro.c
index 79e2ddc..3c157c8 100644
--- a/coro.c
+++ b/coro.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001-2009 Marc Alexander Lehmann <schmorp@schmorp.de>
+ * Copyright (c) 2001-2011 Marc Alexander Lehmann <schmorp@schmorp.de>
*
* Redistribution and use in source and binary forms, with or without modifica-
* tion, are permitted provided that the following conditions are met:
@@ -88,6 +88,11 @@ coro_init (void)
coro_transfer (new_coro, create_coro);
+#ifdef __linux && __elf
+ /* we blindly assume on any __linux with __elf we have a new enough gas with .cfi_undefined support */
+ asm (".cfi_undefined rip");
+#endif
+
func ((void *)arg);
/* the new coro returned. bad. just abort() for now */
diff --git a/coro.h b/coro.h
index a4c8b0b..2f80ee6 100644
--- a/coro.h
+++ b/coro.h
@@ -71,6 +71,7 @@
* 2009-06-23 tentative win32-backend support for mingw32 (Yasuhiro Matsumoto).
* 2010-12-03 tentative support for uclibc (which lacks all sorts of things).
* 2011-05-30 set initial callee-saved-registers to zero with CORO_ASM.
+ * use .cfi_undefined rip on linux-elf for better backtraces.
*/
#ifndef CORO_H