summaryrefslogtreecommitdiff
path: root/lang/librep/patches
diff options
context:
space:
mode:
authortnn <tnn>2007-05-07 12:42:19 +0000
committertnn <tnn>2007-05-07 12:42:19 +0000
commit8aeba02288aab972df97925d6dbd2e977d786b81 (patch)
tree66cac43816e3748a339a5fa44db2abaceb08dc79 /lang/librep/patches
parentff345b8052d7f1511cbb8f20f6542e5f88b72736 (diff)
downloadpkgsrc-8aeba02288aab972df97925d6dbd2e977d786b81.tar.gz
librep-0.17nb3: Bring in a couple of bugfixes from GNOME svn.
Diffstat (limited to 'lang/librep/patches')
-rw-r--r--lang/librep/patches/patch-ad12
-rw-r--r--lang/librep/patches/patch-ae15
-rw-r--r--lang/librep/patches/patch-af28
-rw-r--r--lang/librep/patches/patch-ag40
-rw-r--r--lang/librep/patches/patch-ah16
-rw-r--r--lang/librep/patches/patch-ai29
6 files changed, 140 insertions, 0 deletions
diff --git a/lang/librep/patches/patch-ad b/lang/librep/patches/patch-ad
new file mode 100644
index 00000000000..3bf51b51592
--- /dev/null
+++ b/lang/librep/patches/patch-ad
@@ -0,0 +1,12 @@
+$NetBSD: patch-ad,v 1.1 2007/05/07 12:42:19 tnn Exp $
+
+--- lisp/rep/xml/reader.jl.orig 2007-05-07 14:12:43.000000000 +0200
++++ lisp/rep/xml/reader.jl
+@@ -126,6 +126,7 @@
+ (let ((data (substitute-entities (read-string-item stream '(#\>)))))
+ (or (= (current stream) #\>)
+ (error "Expected '>' character: %s" stream))
++ (next stream)
+ (list '! data)))
+
+ (define (read-tag-body stream)
diff --git a/lang/librep/patches/patch-ae b/lang/librep/patches/patch-ae
new file mode 100644
index 00000000000..eb65c969a8a
--- /dev/null
+++ b/lang/librep/patches/patch-ae
@@ -0,0 +1,15 @@
+$NetBSD: patch-ae,v 1.1 2007/05/07 12:42:19 tnn Exp $
+
+--- src/continuations.c.orig 2007-05-07 14:15:20.000000000 +0200
++++ src/continuations.c
+@@ -458,7 +458,9 @@ save_stack (rep_continuation *c)
+
+ FLUSH_REGISTER_WINDOWS;
+
+-#if defined (__GNUC__) && !defined (BROKEN_ALPHA_GCC)
++ /* __builtin_frame_address doesn't give the right thing on athlon64 */
++
++#if defined (__GNUC__) && !defined (BROKEN_ALPHA_GCC) && !defined (__x86_64)
+ c->stack_top = __builtin_frame_address (0);
+ #else
+ c->stack_top = (char *) &size;
diff --git a/lang/librep/patches/patch-af b/lang/librep/patches/patch-af
new file mode 100644
index 00000000000..8bd0aee704c
--- /dev/null
+++ b/lang/librep/patches/patch-af
@@ -0,0 +1,28 @@
+$NetBSD: patch-af,v 1.1 2007/05/07 12:42:19 tnn Exp $
+
+--- src/ffi.c.orig 2007-05-07 14:17:55.000000000 +0200
++++ src/ffi.c
+@@ -307,9 +307,11 @@ rep_ffi_marshal (unsigned int type_id, r
+ *(double *)ptr = (double) rep_get_float (value);
+ return ptr + sizeof (double);
+
++#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
+ case FFI_TYPE_LONGDOUBLE:
+ *(long double *)ptr = (long double) rep_get_float (value);
+ return ptr + sizeof (long double);
++#endif
+
+ case FFI_TYPE_UINT8:
+ *(uint8_t *)ptr = (uint8_t) rep_get_long_int (value);
+@@ -435,9 +437,11 @@ rep_ffi_demarshal (unsigned int type_id,
+ *value = rep_make_float (*(double *)ptr, rep_TRUE);
+ return ptr + sizeof (double);
+
++#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
+ case FFI_TYPE_LONGDOUBLE:
+ *value = rep_make_float (*(long double *)ptr, rep_TRUE);
+ return ptr + sizeof (long double);
++#endif
+
+ case FFI_TYPE_UINT8:
+ *value = rep_MAKE_INT (*(uint8_t *)ptr);
diff --git a/lang/librep/patches/patch-ag b/lang/librep/patches/patch-ag
new file mode 100644
index 00000000000..8287744d743
--- /dev/null
+++ b/lang/librep/patches/patch-ag
@@ -0,0 +1,40 @@
+$NetBSD: patch-ag,v 1.1 2007/05/07 12:42:19 tnn Exp $
+
+--- src/lisp.c.orig 2007-05-07 14:20:07.000000000 +0200
++++ src/lisp.c
+@@ -2493,7 +2493,7 @@ handler.
+ rep_DECLARE1(error, rep_SYMBOLP);
+
+ on_error = Fsymbol_value (Qbacktrace_on_error, Qt);
+- if (on_error == Qt
++ if ((on_error == Qt && error != Qend_of_stream)
+ || (rep_CONSP(on_error)
+ && (tmp = Fmemq (error, on_error)) && tmp != Qnil))
+ {
+@@ -2504,7 +2504,7 @@ handler.
+
+ errlist = Fcons(error, data);
+ on_error = Fsymbol_value(Qdebug_on_error, Qt);
+- if(((on_error != rep_NULL && on_error == Qt)
++ if(((on_error != rep_NULL && on_error == Qt && error != Qend_of_stream)
+ || (rep_CONSP(on_error)
+ && (tmp = Fmemq(error, on_error)) && !rep_NILP(tmp))))
+ {
+@@ -2705,13 +2705,13 @@ ARGLIST had been evaluated or not before
+ {
+ char buf[256];
+ #ifdef HAVE_SNPRINTF
+- snprintf (buf, sizeof (buf), " at %s:%d",
++ snprintf (buf, sizeof (buf), " at %s:%ld",
+ rep_STR (rep_CAR (origin)),
+- rep_INT (rep_CDR (origin)));
++ (long) rep_INT (rep_CDR (origin)));
+ #else
+- sprintf (buf, " at %s:%d",
++ sprintf (buf, " at %s:%ld",
+ rep_STR (rep_CAR (origin)),
+- rep_INT (rep_CDR (origin)));
++ (long) rep_INT (rep_CDR (origin)));
+ #endif
+ rep_stream_puts (strm, buf, -1, rep_FALSE);
+ }
diff --git a/lang/librep/patches/patch-ah b/lang/librep/patches/patch-ah
new file mode 100644
index 00000000000..d74f813c6b4
--- /dev/null
+++ b/lang/librep/patches/patch-ah
@@ -0,0 +1,16 @@
+$NetBSD: patch-ah,v 1.1 2007/05/07 12:42:19 tnn Exp $
+
+--- src/main.c.orig 2007-05-07 14:21:20.000000000 +0200
++++ src/main.c
+@@ -157,6 +157,11 @@ get_main_options(char *prog_name, int *a
+ return rep_TRUE;
+ }
+
++/* GCC 4 helpfully inlines this function and breaks the stack check. */
++#if __GNUC__ >= 4
++static void check_configuration (int *stack_low) __attribute__ ((noinline));
++#endif
++
+ static void
+ check_configuration (int *stack_low)
+ {
diff --git a/lang/librep/patches/patch-ai b/lang/librep/patches/patch-ai
new file mode 100644
index 00000000000..0d07ab1cb36
--- /dev/null
+++ b/lang/librep/patches/patch-ai
@@ -0,0 +1,29 @@
+$NetBSD: patch-ai,v 1.1 2007/05/07 12:42:19 tnn Exp $
+
+--- src/timers.c.orig 2007-05-07 14:22:37.000000000 +0200
++++ src/timers.c
+@@ -128,7 +128,7 @@ fix_time (long *secs, long *msecs)
+ *msecs += 1000;
+ (*secs)--;
+ }
+- while (*msecs > 1000)
++ while (*msecs >= 1000)
+ {
+ *msecs -= 1000;
+ (*secs)++;
+@@ -252,6 +252,7 @@ to re-enable it.
+ t->function = fun;
+ t->secs = rep_get_long_int (secs);
+ t->msecs = rep_get_long_int (msecs);
++ fix_time (&t->secs, &t->msecs);
+ t->next_alloc = allocated_timers;
+ allocated_timers = t;
+ insert_timer (t);
+@@ -290,6 +291,7 @@ duration. Otherwise, the existing values
+ {
+ TIMER(timer)->secs = rep_get_long_int (secs);
+ TIMER(timer)->msecs = rep_get_long_int (msecs);
++ fix_time (&TIMER (timer)->secs, &TIMER (timer)->msecs);
+ }
+ insert_timer (TIMER(timer));
+ return timer;