summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-09 09:34:31 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-09 09:34:31 +0000
commit48f2d3a72d3cd92eea720a632ad71883779df708 (patch)
tree9a8e84850808c3ad7a0b7d6047aea995ca419421 /gc.c
parente1885a0079bc61b610842783fe4dd1a2a84d8a81 (diff)
* configure.in, eval.c, gc.c: use libunwind only on HP-UX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gc.c b/gc.c
index 391412f806..c33be1616d 100644
--- a/gc.c
+++ b/gc.c
@@ -39,7 +39,7 @@
*/
#define __libc_ia64_register_backing_store_base (4ULL<<61)
#else
-#ifdef HAVE_UNWIND_H
+#if defined(HAVE_UNWIND_H) && defined(HAVE__UNW_CREATECONTEXTFORSELF)
#include <unwind.h>
#else
#pragma weak __libc_ia64_register_backing_store_base
@@ -1347,14 +1347,14 @@ garbage_collect()
{
ucontext_t ctx;
VALUE *top, *bot;
-#ifdef HAVE_UNWIND_H
+#if defined(HAVE_UNWIND_H) && defined(HAVE__UNW_CREATECONTEXTFORSELF)
_Unwind_Context *unwctx = _UNW_createContextForSelf();
#endif
getcontext(&ctx);
mark_locations_array((VALUE*)&ctx.uc_mcontext,
((size_t)(sizeof(VALUE)-1 + sizeof ctx.uc_mcontext)/sizeof(VALUE)));
-#ifdef HAVE_UNWIND_H
+#if defined(HAVE_UNWIND_H) && defined(HAVE__UNW_CREATECONTEXTFORSELF)
_UNW_currentContext(unwctx);
bot = (VALUE*)(long)_UNW_getAR(unwctx, _UNW_AR_BSP);
top = (VALUE*)(long)_UNW_getAR(unwctx, _UNW_AR_BSPSTORE);