summaryrefslogtreecommitdiff
path: root/libguile/continuations.h
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2009-08-05 16:13:28 +0100
committerNeil Jerram <neil@ossau.uklinux.net>2009-08-21 23:29:08 +0100
commita4dbe1ac3dacf365263023c4fe1cd6ffb4a894b7 (patch)
treec2ac7763ec1dd7ed02196ef1e4c29565a7b21683 /libguile/continuations.h
parentd5ed380ec83a2f42cacc40697717679bf03e6857 (diff)
downloadguile-a4dbe1ac3dacf365263023c4fe1cd6ffb4a894b7.tar.gz
Avoid clash with system setjmp/longjmp on IA64
Problem was that if an application includes both libguile.h and the system's setjmp.h, and is compiled on IA64, it gets compile errors because of jmp_buf, setjmp and longjmp being multiply defined. * libguile/__scm.h (__ia64__): Define scm_i_jmp_buf, SCM_I_SETJMP and SCM_I_LONGJMP instead of jmp_buf, setjmp and longjmp. (all other platforms): Map scm_i_jmp_buf, SCM_I_SETJMP and SCM_I_LONGJMP to jmp_buf, setjmp and longjmp. * libguile/continuations.c (scm_make_continuation): Use `SCM_I_SETJMP' instead of `setjmp'. (copy_stack_and_call): Use `SCM_I_LONJMP' instead of `longjmp'. (scm_ia64_longjmp): Use type `scm_i_jmp_buf' instead of `jmp_buf'. * libguile/continuations.h (scm_t_contregs): Use type `scm_i_jmp_buf' instead of `jmp_buf'. * libguile/threads.c (suspend): Use `SCM_I_SETJMP' instead of `setjmp'. * libguile/threads.h (scm_i_thread): Use type `scm_i_jmp_buf' instead of `jmp_buf'. * libguile/throw.c (JBJMPBUF, make_jmpbuf, jmp_buf_and_retval): Use type `scm_i_jmp_buf' instead of `jmp_buf'. (scm_c_catch): Use `SCM_I_SETJMP' instead of `setjmp'. (scm_ithrow): Use `SCM_I_LONGJMP' instead of `longjmp'.
Diffstat (limited to 'libguile/continuations.h')
-rw-r--r--libguile/continuations.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/continuations.h b/libguile/continuations.h
index 08eec8f54..82cf178b0 100644
--- a/libguile/continuations.h
+++ b/libguile/continuations.h
@@ -44,7 +44,7 @@ SCM_API scm_t_bits scm_tc16_continuation;
typedef struct
{
SCM throw_value;
- jmp_buf jmpbuf;
+ scm_i_jmp_buf jmpbuf;
SCM dynenv;
#ifdef __ia64__
void *backing_store;