Package: sbcl
Severity: normal
Tags: patch

When building 'sbcl' on amd64 with gcc-4.0,
I get the following error:

cc -g -Wall -O3 -fno-omit-frame-pointer -DSBCL_HOME='"/usr/lib/sbcl/"' -I.  -c 
-o purify.o purify.c
In file included from purify.c:29:
interr.h:15: warning: type qualifiers ignored on function return type
purify.c:46: error: static declaration of 'dynamic_space_free_pointer' follows 
non-static declaration
globals.h:33: error: previous declaration of 'dynamic_space_free_pointer' was 
here

With the attached patch 'sbcl' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/sbcl-0.8.19.39/src/runtime/purify.c ./src/runtime/purify.c
--- ../tmp-orig/sbcl-0.8.19.39/src/runtime/purify.c     2005-01-10 
07:48:25.000000000 +0100
+++ ./src/runtime/purify.c      2005-03-07 15:33:14.097915083 +0100
@@ -43,7 +43,7 @@
  * call is active, but in gencgc there's no such variable and we have
  * to keep our own
  */
-static lispobj *dynamic_space_free_pointer;
+lispobj *dynamic_space_free_pointer;
 #endif
 extern unsigned long bytes_consed_between_gcs;
 
diff -urN ../tmp-orig/sbcl-0.8.19.39/src/runtime/x86-64-arch.c 
./src/runtime/x86-64-arch.c
--- ../tmp-orig/sbcl-0.8.19.39/src/runtime/x86-64-arch.c        2005-01-06 
13:48:04.000000000 +0100
+++ ./src/runtime/x86-64-arch.c 2005-03-07 15:38:43.416350549 +0100
@@ -84,7 +84,7 @@
            vlen = *(char*)(*os_context_pc_addr(context))++;
            /* Skip Lisp error arg data bytes. */
            while (vlen-- > 0) {
-               ( (char*)(*os_context_pc_addr(context)) )++;
+               *os_context_pc_addr(context) = 
(char*)(*os_context_pc_addr(context)) + 1;
            }
            break;
 
@@ -264,12 +264,12 @@
        break;
 
     case trap_Breakpoint:
-       (char*)(*os_context_pc_addr(context)) -= 1;
+       *os_context_pc_addr(context) = (char*)(*os_context_pc_addr(context)) - 
1;
        handle_breakpoint(signal, info, context);
        break;
 
     case trap_FunEndBreakpoint:
-       (char*)(*os_context_pc_addr(context)) -= 1;
+       *os_context_pc_addr(context) = (char*)(*os_context_pc_addr(context)) - 
1;
        *os_context_pc_addr(context) =
            (int)handle_fun_end_breakpoint(signal, info, context);
        break;


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to