Albert Chin <guile-de...@mlists.thewrittenword.com> writes: > libguile/__scm.h has: > # if defined (__ia64__) > /* For IA64, emulate the setjmp API using getcontext. */ > # include <signal.h> > # include <ucontext.h> > typedef struct { > ucontext_t ctx; > int fresh; > } jmp_buf; > # define setjmp(JB) \ > ( (JB).fresh = 1, \ > getcontext (&((JB).ctx)), \ > ((JB).fresh ? ((JB).fresh = 0, 0) : 1) ) > # define longjmp(JB,VAL) scm_ia64_longjmp (&(JB), VAL) > void scm_ia64_longjmp (jmp_buf *, int); > > But, on HP-UX/IA64, <setjmp.h> has a conflicting declaration of jmp_buf.
Thanks for the report. This is also a Debian bug [1], and their patch is [2]. [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506684 [2] http://patch-tracking.debian.net/patch/series/view/guile-1.8/1.8.5+1-4.1/dont-redefine-jmp_buf.diff I will work on this soon. I expect my fix to be similar to Debian's - i.e. introducing scm_jmp_buf, scm_setjmp and scm_longjmp - but not identical. Regards, Neil