[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems with <setjmp.h> and libguile/__scm.h on HP-UX/IA64
From: |
Neil Jerram |
Subject: |
Re: Problems with <setjmp.h> and libguile/__scm.h on HP-UX/IA64 |
Date: |
Thu, 26 Mar 2009 23:22:20 +0000 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
Albert Chin <address@hidden> 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