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

