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.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to