guile-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]