I uploaded the following changes to delayed/3. Ben.
diff -u guile-1.8-1.8.5+1/debian/changelog guile-1.8-1.8.5+1/debian/changelog --- guile-1.8-1.8.5+1/debian/changelog +++ guile-1.8-1.8.5+1/debian/changelog @@ -1,3 +1,12 @@ +guile-1.8 (1.8.5+1-4.1) unstable; urgency=low + + * Non-maintainer upload. + * Add dont-redefine-jmp_buf.diff: adds 'scm_' prefix to jmp_buf + replacements so they don't affect clients with their own uses for + jmp_buf. (closes: #506684) + + -- Ben Hutchings <[EMAIL PROTECTED]> Mon, 08 Dec 2008 04:15:25 +0000 + guile-1.8 (1.8.5+1-4) unstable; urgency=medium * Change Architectures back to any where appropriate (i.e. include diff -u guile-1.8-1.8.5+1/debian/patches/series guile-1.8-1.8.5+1/debian/patches/series --- guile-1.8-1.8.5+1/debian/patches/series +++ guile-1.8-1.8.5+1/debian/patches/series @@ -8,2 +8,3 @@ fix-ia64-continuations.diff +dont-redefine-jmp_buf.diff autofiles.diff only in patch2: unchanged: --- guile-1.8-1.8.5+1.orig/debian/patches/dont-redefine-jmp_buf.diff +++ guile-1.8-1.8.5+1/debian/patches/dont-redefine-jmp_buf.diff @@ -0,0 +1,97 @@ +--- guile-1.8-1.8.5+1.orig/libguile/__scm.h ++++ guile-1.8-1.8.5+1/libguile/__scm.h +@@ -386,21 +386,23 @@ + + #ifdef vms + # ifndef CHEAP_CONTINUATIONS +- typedef int jmp_buf[17]; +- extern int setjump(jmp_buf env); +- extern int longjump(jmp_buf env, int ret); +-# define setjmp setjump +-# define longjmp longjump ++ typedef int scm_jmp_buf[17]; ++ extern int setjump(scm_jmp_buf env); ++ extern int longjump(scm_jmp_buf env, int ret); ++# define scm_setjmp setjump ++# define scm_longjmp longjump ++# define SCM_DEFINES_JMP_BUF + # else + # include <setjmp.h> + # endif + #else /* ndef vms */ + # ifdef _CRAY1 +- typedef int jmp_buf[112]; +- extern int setjump(jmp_buf env); +- extern int longjump(jmp_buf env, int ret); +-# define setjmp setjump +-# define longjmp longjump ++ typedef int scm_jmp_buf[112]; ++ extern int setjump(scm_jmp_buf env); ++ extern int longjump(scm_jmp_buf env, int ret); ++# define scm_setjmp setjump ++# define scm_longjmp longjump ++# define SCM_DEFINES_JMP_BUF + # else /* ndef _CRAY1 */ + # if defined (__ia64__) + /* For IA64, emulate the setjmp API using getcontext. */ +@@ -409,15 +411,19 @@ + typedef struct { + ucontext_t ctx; + int fresh; +- } jmp_buf; +-# define setjmp(JB) \ ++ } scm_jmp_buf; ++# define scm_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); ++# define scm_longjmp(JB,VAL) scm_ia64_longjmp (&(JB), VAL) ++ void scm_ia64_longjmp (scm_jmp_buf *, int); ++# define SCM_DEFINES_JMP_BUF + # else /* ndef __ia64__ */ + # include <setjmp.h> ++ typedef jmp_buf scm_jmp_buf; ++# define scm_setjmp setjmp ++# define scm_longjmp longjmp + # endif /* ndef __ia64__ */ + # endif /* ndef _CRAY1 */ + #endif /* ndef vms */ +--- guile-1.8-1.8.5+1.orig/libguile/_scm.h ++++ guile-1.8-1.8.5+1/libguile/_scm.h +@@ -41,6 +41,12 @@ + #include <errno.h> + #include "libguile/__scm.h" + ++#ifdef SCM_DEFINES_JMP_BUF ++typedef scm_jmp_buf jmp_buf; ++#define setjmp(JB) scm_setjmp(JB) ++#define longjmp(JB,VAL) scm_longjmp(JB,VAL) ++#endif ++ + /* Include headers for those files central to the implementation. The + rest should be explicitly #included in the C files themselves. */ + #include "libguile/error.h" /* Everyone signals errors. */ +--- guile-1.8-1.8.5+1.orig/libguile/continuations.h ++++ guile-1.8-1.8.5+1/libguile/continuations.h +@@ -43,7 +43,7 @@ + typedef struct + { + SCM throw_value; +- jmp_buf jmpbuf; ++ scm_jmp_buf jmpbuf; + SCM dynenv; + #ifdef __ia64__ + void *backing_store; +--- guile-1.8-1.8.5+1.orig/libguile/threads.h ++++ guile-1.8-1.8.5+1/libguile/threads.h +@@ -107,7 +107,7 @@ + /* For keeping track of the stack and registers. */ + SCM_STACKITEM *base; + SCM_STACKITEM *top; +- jmp_buf regs; ++ scm_jmp_buf regs; + #ifdef __ia64__ + void *register_backing_store_base; + scm_t_contregs *pending_rbs_continuation; --- END --- -- Ben Hutchings All extremists should be taken out and shot.
signature.asc
Description: This is a digitally signed message part