FreeBSD Bugzilla – Attachment 94188 Details for
Bug 132287
[patch] unbreak lang/qscheme with GCC 4.2
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 18.19 KB, created by
Vitaly Magerya
on 2009-03-03 17:10:00 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Vitaly Magerya
Created:
2009-03-03 17:10:00 UTC
Size:
18.19 KB
patch
obsolete
>diff -ruN qscheme.orig/Makefile qscheme/Makefile >--- qscheme.orig/Makefile 2007-10-04 18:47:28.000000000 +0300 >+++ qscheme/Makefile 2009-03-03 18:35:42.000000000 +0200 >@@ -7,7 +7,7 @@ > > PORTNAME= qscheme > PORTVERSION= 0.5.1 >-PORTREVISION= 3 >+PORTREVISION= 4 > CATEGORIES= lang scheme > MASTER_SITES= http://www.sof.ch/dan/qscheme/files/ > >@@ -40,10 +40,6 @@ > > .include <bsd.port.pre.mk> > >-.if ${OSVERSION} >= 700042 >-BROKEN= Does not compile with GCC 4.2 >-.endif >- > .if ${ARCH} == "ia64" || ${ARCH} == "amd64" > BROKEN= Does not build on amd64 or ia64 > .endif >diff -ruN qscheme.orig/files/patch-Makefile.in qscheme/files/patch-Makefile.in >--- qscheme.orig/files/patch-Makefile.in 2004-11-01 23:59:34.000000000 +0200 >+++ qscheme/files/patch-Makefile.in 2009-03-03 18:31:07.000000000 +0200 >@@ -1,5 +1,5 @@ >---- Makefile.in.orig Thu Jun 22 19:10:21 2000 >-+++ Makefile.in Fri Oct 29 10:07:48 2004 >+--- Makefile.in.orig 2000-06-23 02:10:21.000000000 +0300 >++++ Makefile.in 2009-03-03 18:30:51.000000000 +0200 > @@ -111,7 +111,7 @@ > EXTRA_DIST = mkoptable mkwhatis $(modsrc) $(scmsrc) CHANGES LICENCE_EXCEPTION > >@@ -9,9 +9,12 @@ > > noinst_LIBRARIES = libqs.a > >-@@ -580,10 +580,10 @@ >+@@ -578,12 +578,12 @@ >+ $(COMPILE) -o $@ -shared -fPIC -I$(incpcre) $(srcdir)/regex.c $(PCRE_LIB) >+ > %.x:%.i >- mkoptable $< > $@ >+- mkoptable $< > $@ >++ ./mkoptable $< > $@ > > -sproto.h: $(libqs_src) > - @cfunctions $(libqs_src) \ >diff -ruN qscheme.orig/files/patch-chr.c qscheme/files/patch-chr.c >--- qscheme.orig/files/patch-chr.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-chr.c 2009-03-03 16:51:29.000000000 +0200 >@@ -0,0 +1,14 @@ >+--- chr.c.orig 2009-03-03 16:47:01.000000000 +0200 >++++ chr.c 2009-03-03 16:47:09.000000000 +0200 >+@@ -15,11 +15,6 @@ >+ >+ #define BSLASH '\134' >+ >+-struct CHR_SYM { >+- char *str; >+- char chr; >+-}; >+- >+ struct CHR_SYM csym[] = { >+ { "null", 0 }, >+ { "bell", '\a' }, >diff -ruN qscheme.orig/files/patch-file.c qscheme/files/patch-file.c >--- qscheme.orig/files/patch-file.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-file.c 2009-03-03 17:41:11.000000000 +0200 >@@ -0,0 +1,27 @@ >+--- file.c.orig 2009-03-03 17:38:43.000000000 +0200 >++++ file.c 2009-03-03 17:40:53.000000000 +0200 >+@@ -7,11 +7,13 @@ >+ >+ #define SCM_FILE(x) (FILE *)(SCM_AUX(x)) >+ #define SCM_FILEP(x) (SCM_OBJTYPE(x) == SOBJ_T_FILE) >++#define SCM_FILE_SET SCM_AUX_SET >+ >+ SOBJ scm_file_new(FILE *fp) >+ { >+ SOBJ new = scm_newcell(SOBJ_T_FILE); >+- SCM_FILE(new) = fp; >++ /*SCM_FILE(new) = fp;*/ >++ SCM_FILE_SET(new, fp); >+ return(new); >+ } >+ >+@@ -77,7 +79,8 @@ >+ int r; >+ if (!SCM_FILEP(x)) SCM_ERR("bad file", x); >+ r = fclose(SCM_FILE(x)); >+- SCM_FILE(x) = NULL; >++ /*SCM_FILE_SET(x) = NULL;*/ >++ SCM_FILE_SET(x, NULL); >+ return(SCM_MKINUM(r)); >+ } >+ >diff -ruN qscheme.orig/files/patch-number.i qscheme/files/patch-number.i >--- qscheme.orig/files/patch-number.i 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-number.i 2009-03-03 17:04:35.000000000 +0200 >@@ -0,0 +1,42 @@ >+--- number.i.orig 2000-06-10 01:41:00.000000000 +0300 >++++ number.i 2009-03-03 17:04:01.000000000 +0200 >+@@ -562,7 +562,8 @@ >+ Prim(plus1, "1+", 1) >+ { >+ if (SCM_INUMP(TOS) && (SCM_INUM(TOS) < SOBJ_INUM_MAX)) { >+- (long)TOS += (1 << SOBJ_INUM_SHIFT); >++ /*(long)TOS += (1 << SOBJ_INUM_SHIFT);*/ >++ TOS = (long)TOS + (long)(1 << SOBJ_INUM_SHIFT); >+ NEXT; >+ } >+ TOS = scm_add2(SCM_MKINUM(1), TOS); >+@@ -574,7 +575,8 @@ >+ Prim(plus2, "2+", 1) >+ { >+ if (SCM_INUMP(TOS) && (SCM_INUM(TOS) < SOBJ_INUM_MAX)) { >+- (long)TOS += (2 << SOBJ_INUM_SHIFT); >++ /*(long)TOS += (2 << SOBJ_INUM_SHIFT);*/ >++ TOS = (long)TOS + (long)(2 << SOBJ_INUM_SHIFT); >+ NEXT; >+ } >+ TOS = scm_add2(SCM_MKINUM(2), TOS); >+@@ -586,7 +588,8 @@ >+ Prim(minus1, "1-", 1) >+ { >+ if (SCM_INUMP(TOS) && (SCM_INUM(TOS) > SOBJ_INUM_MIN)) { >+- (long)TOS += (-1 << SOBJ_INUM_SHIFT); >++ /*(long)TOS += (-1 << SOBJ_INUM_SHIFT);*/ >++ TOS = (long)TOS + (long)(-1 << SOBJ_INUM_SHIFT); >+ NEXT; >+ } >+ TOS = scm_sub2(TOS, SCM_MKINUM(1)); >+@@ -598,7 +601,8 @@ >+ Prim(minus2, "2-", 1) >+ { >+ if (SCM_INUMP(TOS) && (SCM_INUM(TOS) > SOBJ_INUM_MIN)) { >+- (long)TOS += (-2 << SOBJ_INUM_SHIFT); >++ /*(long)TOS += (-2 << SOBJ_INUM_SHIFT);*/ >++ TOS = (long)TOS + (long)(-2 << SOBJ_INUM_SHIFT); >+ NEXT; >+ } >+ TOS = scm_sub2(TOS, SCM_MKINUM(2)); >diff -ruN qscheme.orig/files/patch-object.c qscheme/files/patch-object.c >--- qscheme.orig/files/patch-object.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-object.c 2009-03-03 17:58:22.000000000 +0200 >@@ -0,0 +1,107 @@ >+--- object.c.orig 2009-03-03 17:41:46.000000000 +0200 >++++ object.c 2009-03-03 17:58:19.000000000 +0200 >+@@ -20,8 +20,10 @@ >+ SOBJ scm_mkobjdef(int ndefs) >+ { >+ SOBJ new = scm_newcell(SOBJ_T_OBJDEF); >+- SCM_OBJDEF_AUX(new) = >+- scm_must_alloc(sizeof(SCM_ObjDefAux) + ((ndefs - 1) * sizeof(SCM_ObjDef))); >++ /*SCM_OBJDEF_AUX(new) = >++ scm_must_alloc(sizeof(SCM_ObjDefAux) + ((ndefs - 1) * sizeof(SCM_ObjDef)));*/ >++ SCM_OBJDEF_AUX_SET(new, >++ scm_must_alloc(sizeof(SCM_ObjDefAux) + ((ndefs - 1) * sizeof(SCM_ObjDef)))); >+ >+ SCM_OBJDEF_AUX(new)->ndefs = ndefs; >+ return(new); >+@@ -43,7 +45,8 @@ >+ { >+ if (SCM_OBJDEF_AUX(x)) { >+ scm_free(SCM_OBJDEF_AUX(x)); >+- SCM_OBJDEF_AUX(x) = NULL; >++ /*SCM_OBJDEF_AUX(x) = NULL;*/ >++ SCM_OBJDEF_AUX_SET(x, NULL); >+ } >+ } >+ >+@@ -64,9 +67,12 @@ >+ { >+ SOBJ new = scm_newcell(SOBJ_T_OBJECT); >+ >+- SCM_OBJECT_DEF(new) = def; >++ /*SCM_OBJECT_DEF(new) = def; >+ SCM_OBJECT_VAL(new) = >+- scm_must_alloc(sizeof(SCM_ObjVal) + ((nslots - 1) * sizeof(SOBJ))); >++ scm_must_alloc(sizeof(SCM_ObjVal) + ((nslots - 1) * sizeof(SOBJ)));*/ >++ SCM_OBJECT_DEF_SET(new, def); >++ SCM_OBJECT_VAL_SET(new, >++ scm_must_alloc(sizeof(SCM_ObjVal) + ((nslots - 1) * sizeof(SOBJ)))); >+ >+ SCM_OBJECT_VAL(new)->nslots = nslots; >+ return(new); >+@@ -237,7 +243,8 @@ >+ int nslots; >+ >+ if (SCM_OBJECT_VAL(obj) == NULL) { >+- SCM_OBJECT_VAL(obj) = scm_must_alloc(offsetof(SCM_ObjVal, slot[1])); >++ /*SCM_OBJECT_VAL(obj) = scm_must_alloc(offsetof(SCM_ObjVal, slot[1]));*/ >++ SCM_OBJECT_VAL_SET(obj, scm_must_alloc(offsetof(SCM_ObjVal, slot[1]))); >+ SCM_OBJECT_VAL(obj)->nslots = 1; >+ return(0); >+ } >+@@ -246,7 +253,9 @@ >+ memcpy(ov, SCM_OBJECT_VAL(obj), offsetof(SCM_ObjVal, slot[nslots])); >+ ov->nslots++; >+ ov->slot[nslots] = NULL; >+- scm_free(SCM_OBJECT_VAL(obj)); SCM_OBJECT_VAL(obj) = ov; >++ scm_free(SCM_OBJECT_VAL(obj)); >++ /*SCM_OBJECT_VAL(obj) = ov;*/ >++ SCM_OBJECT_VAL_SET(obj, ov); >+ return(nslots); >+ } >+ >+@@ -284,11 +293,13 @@ >+ int nslots, size; >+ SOBJ new = scm_newcell(SOBJ_T_OBJECT); >+ >+- SCM_OBJECT_DEF(new) = SCM_OBJECT_DEF(obj); >++ /*SCM_OBJECT_DEF(new) = SCM_OBJECT_DEF(obj);*/ >++ SCM_OBJECT_DEF_SET(new, SCM_OBJECT_DEF(obj)); >+ >+ nslots = SCM_OBJECT_VAL(obj)->nslots; >+ size = offsetof(SCM_ObjVal, slot[nslots]); >+- SCM_OBJECT_VAL(new) = scm_must_alloc(size); >++ /*SCM_OBJECT_VAL(new) = scm_must_alloc(size);*/ >++ SCM_OBJECT_VAL_SET(new, scm_must_alloc(size)); >+ memcpy(SCM_OBJECT_VAL(new), SCM_OBJECT_VAL(obj), size); >+ return(new); >+ } >+@@ -377,7 +388,8 @@ >+ /* make a new objdef with space for 2 more defs */ >+ newdef = scm_newcell(SOBJ_T_OBJDEF); >+ d = objdef_append_fields(SCM_OBJDEF_AUX(olddef), 2); >+- SCM_OBJDEF_AUX(newdef) = d; >++ /*SCM_OBJDEF_AUX(newdef) = d;*/ >++ SCM_OBJDEF_AUX_SET(newdef, d); >+ >+ /* prepare atom for the set! name */ >+ i = strlen(SCM_ATOM_NAME(name)); >+@@ -414,7 +426,8 @@ >+ if ((olddef = SCM_OBJECT_DEF(obj)) == NULL) SCM_ERR("bad objdef for object",obj); >+ newdef = scm_newcell(SOBJ_T_OBJDEF); >+ d = objdef_append_fields(SCM_OBJDEF_AUX(olddef), 1); >+- SCM_OBJDEF_AUX(newdef) = d; >++ /*SCM_OBJDEF_AUX_SET(newdef) = d;*/ >++ SCM_OBJDEF_AUX_SET(newdef, d); >+ >+ slotnr = object_new_slot(obj); /* alloc new slot and get index */ >+ >+@@ -424,7 +437,8 @@ >+ d->def[i].type = type; >+ d->def[i].index= slotnr; >+ >+- SCM_OBJECT_DEF(obj) = newdef; /* adjust object def pointer */ >++ /*SCM_OBJECT_DEF(obj) = newdef;*/ >++ SCM_OBJECT_DEF_SET(obj, newdef); /* adjust object def pointer */ >+ SCM_OBJECT_SLOT(obj,slotnr) = value; >+ return(obj); >+ } >diff -ruN qscheme.orig/files/patch-object.h qscheme/files/patch-object.h >--- qscheme.orig/files/patch-object.h 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-object.h 2009-03-03 17:56:29.000000000 +0200 >@@ -0,0 +1,16 @@ >+--- object.h.orig 2009-03-03 17:43:57.000000000 +0200 >++++ object.h 2009-03-03 17:54:10.000000000 +0200 >+@@ -51,10 +51,13 @@ >+ >+ #define SCM_OBJECT_VAL(x) ((SCM_ObjVal*)(SCM_CAR(x))) >+ #define SCM_OBJECT_DEF(x) SCM_CDR(x) >++#define SCM_OBJECT_VAL_SET(x,v) (SCM_CAR(x)=(v)) >++#define SCM_OBJECT_DEF_SET(x,v) (SCM_CDR(x)=(v)) >+ >+ /*** Accessing objdef fields */ >+ >+ #define SCM_OBJDEF_AUX(x) ((SCM_ObjDefAux*)(SCM_AUX(x))) >++#define SCM_OBJDEF_AUX_SET SCM_AUX_SET >+ #define SCM_OBJDEF_NDEFS(x) SCM_OBJDEF_AUX(x)->ndefs >+ #define SCM_OBJDEF_DEF(x,i) (SCM_OBJDEF_AUX(x)->def + i) >+ >diff -ruN qscheme.orig/files/patch-process.c qscheme/files/patch-process.c >--- qscheme.orig/files/patch-process.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-process.c 2009-03-03 17:37:43.000000000 +0200 >@@ -0,0 +1,20 @@ >+--- process.c.orig 2000-06-01 22:30:18.000000000 +0300 >++++ process.c 2009-03-03 17:37:30.000000000 +0200 >+@@ -38,6 +38,7 @@ >+ >+ #define SCM_PROCESS(x) ((SCM_ProcessAux*)SCM_AUX(x)) >+ #define SCM_PROCESSP(x) (SCM_OBJTYPE(x) == SOBJ_T_PROCESS) >++#define SCM_PROCESS_SET SCM_AUX_SET >+ >+ #define SCM_PROCESS_PID(x) (SCM_PROCESS(x)->pid) >+ #define SCM_PROCESS_PORT(x,i) (SCM_PROCESS(x)->port[i]) >+@@ -153,7 +154,8 @@ >+ int i; >+ SOBJ new = scm_newcell(SOBJ_T_PROCESS); >+ >+- SCM_PROCESS(new) = scm_must_alloc(sizeof(SCM_ProcessAux)); >++ /*SCM_PROCESS_SET(new) = scm_must_alloc(sizeof(SCM_ProcessAux));*/ >++ SCM_PROCESS_SET(new, scm_must_alloc(sizeof(SCM_ProcessAux))); >+ SCM_PROCESS_PID(new) = 0; >+ for (i = 0; i < 3; i++) >+ SCM_PROCESS_PORT(new, i) = NULL; >diff -ruN qscheme.orig/files/patch-s.h qscheme/files/patch-s.h >--- qscheme.orig/files/patch-s.h 2004-06-10 21:30:09.000000000 +0300 >+++ qscheme/files/patch-s.h 2009-03-03 17:35:29.000000000 +0200 >@@ -1,5 +1,5 @@ >---- s.h.orig Sun Feb 10 12:45:20 2002 >-+++ s.h Sun Feb 10 12:45:32 2002 >+--- s.h.orig 2000-06-16 00:15:42.000000000 +0300 >++++ s.h 2009-03-03 17:35:11.000000000 +0200 > @@ -203,7 +203,7 @@ > > #ifdef SCM_WITH_THREADS >@@ -8,3 +8,33 @@ > +#define SCM_SIG_SUSPEND SIGUSR1 > #define SCM_SIG_RESUME SIGXCPU > #endif >+ >+@@ -539,6 +539,7 @@ >+ #define SCM_CATCH_CONTEXT_UNWIND(x) SCM_CATCH_CONTEXT(x)->unwind >+ >+ #define SCM_AUX(x) SCM_VALUE(x,aux,aux) >++#define SCM_AUX_SET(x,v) SCM_VALUE(x,aux,aux)=(v); >+ >+ /*-- type predicates */ >+ /*#define SCM_OBJTYPE(x) (SCM_INUMP(x)?SOBJ_T_INUM:(x?SCM_OBJREF(x)->type:-1)) */ >+@@ -656,6 +657,11 @@ >+ SCM_ERR_THROW, >+ SCM_ERR_MAX }; >+ >++struct CHR_SYM { >++ char *str; >++ char chr; >++}; >++ >+ #include "sproto.h" >+ >+ #define scm_sp scm_vmd()->reg.sp >+@@ -668,6 +674,8 @@ >+ #define SCM_THREAD(x) ((SCM_VMD*)(SCM_AUX(x))) >+ #define SCM_MUTEX(x) ((pthread_mutex_t *)SCM_AUX(x)) >+ #define SCM_SEMAPHORE(x) ((sem_t *)SCM_AUX(x)) >++#define SCM_MUTEX_SET SCM_AUX_SET >++#define SCM_SEMAPHORE_SET SCM_AUX_SET >+ >+ #define SCM_THREADP(x) (SCM_OBJTYPE(x) == SOBJ_T_THREAD) >+ #define SCM_MUTEXP(x) (SCM_OBJTYPE(x) == SOBJ_T_MUTEX) >diff -ruN qscheme.orig/files/patch-socket.c qscheme/files/patch-socket.c >--- qscheme.orig/files/patch-socket.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-socket.c 2009-03-03 18:07:36.000000000 +0200 >@@ -0,0 +1,30 @@ >+--- socket.c.orig 2009-03-03 18:05:10.000000000 +0200 >++++ socket.c 2009-03-03 18:07:34.000000000 +0200 >+@@ -25,6 +25,7 @@ >+ >+ #define SCM_SOCKETP(x) (SCM_OBJTYPE(x) == SOBJ_T_SOCKET) >+ #define SCM_SOCKET(x) ((SCM_SocketAux*)SCM_AUX(x)) >++#define SCM_SOCKET_SET SCM_AUX_SET >+ >+ /* report system error */ >+ static void system_error(char *msg) >+@@ -39,7 +40,8 @@ >+ { >+ SOBJ new; >+ new = scm_newcell(SOBJ_T_SOCKET); >+- SCM_SOCKET(new) = scm_must_alloc(sizeof(SCM_SocketAux)); >++ /*SCM_SOCKET(new) = scm_must_alloc(sizeof(SCM_SocketAux));*/ >++ SCM_SOCKET_SET(new, scm_must_alloc(sizeof(SCM_SocketAux))); >+ memset(SCM_SOCKET(new), 0, sizeof(SCM_SocketAux)); >+ return(new); >+ } >+@@ -323,7 +325,8 @@ >+ /* scm_puts("; sweeping socket "); scm_cprint(x); */ >+ scm_socket_shutdown2(x, 1); >+ scm_free(SCM_SOCKET(x)); >+- SCM_SOCKET(x) = NULL; >++ /*SCM_SOCKET(x) = NULL;*/ >++ SCM_SOCKET_SET(x, NULL); >+ } >+ } >+ >diff -ruN qscheme.orig/files/patch-struct.c qscheme/files/patch-struct.c >--- qscheme.orig/files/patch-struct.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-struct.c 2009-03-03 18:03:39.000000000 +0200 >@@ -0,0 +1,48 @@ >+--- struct.c.orig 2009-03-03 17:58:54.000000000 +0200 >++++ struct.c 2009-03-03 18:02:57.000000000 +0200 >+@@ -24,8 +24,10 @@ >+ ptr = scm_must_alloc(size); >+ size |= SCM_DBLOCK_ALLOCATED; >+ } >+- SCM_DBLOCK_ADDR(new) = ptr; >+- SCM_DBLOCK_SIZE(new) = size; >++ /*SCM_DBLOCK_ADDR(new) = ptr; >++ SCM_DBLOCK_SIZE(new) = size;*/ >++ SCM_DBLOCK_ADDR_SET(new, ptr); >++ SCM_DBLOCK_SIZE_SET(new, size); >+ return(new); >+ } >+ >+@@ -33,8 +35,10 @@ >+ { >+ if (SCM_DBLOCK_SIZE(x) & SCM_DBLOCK_ALLOCATED) { >+ scm_free(SCM_DBLOCK_ADDR(x)); >+- SCM_DBLOCK_ADDR(x) = NULL; >+- SCM_DBLOCK_SIZE(x) = 0; >++ /*SCM_DBLOCK_ADDR(x) = NULL; >++ SCM_DBLOCK_SIZE(x) = 0;*/ >++ SCM_DBLOCK_ADDR_SET(x, NULL); >++ SCM_DBLOCK_SIZE_SET(x, 0); >+ } >+ } >+ >+@@ -136,7 +140,8 @@ >+ SOBJ scm_struct_def_new(int nfields) >+ { >+ SOBJ new = scm_newcell(SOBJ_T_STRUCT_DEF); >+- SCM_STRUCT_DEF(new) = scm_struct_def_alloc(nfields); >++ /*SCM_STRUCT_DEF(new) = scm_struct_def_alloc(nfields);*/ >++ SCM_STRUCT_DEF_SET(new, scm_struct_def_alloc(nfields)); >+ return(new); >+ } >+ >+@@ -156,7 +161,8 @@ >+ { >+ if (SCM_STRUCT_DEF(x)) { >+ scm_free(SCM_STRUCT_DEF(x)); >+- SCM_STRUCT_DEF(x) = NULL; >++ /*SCM_STRUCT_DEF(x) = NULL;*/ >++ SCM_STRUCT_DEF_SET(x, NULL); >+ } >+ } >+ >diff -ruN qscheme.orig/files/patch-struct.h qscheme/files/patch-struct.h >--- qscheme.orig/files/patch-struct.h 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-struct.h 2009-03-03 18:03:47.000000000 +0200 >@@ -0,0 +1,19 @@ >+--- struct.h.orig 2009-03-03 17:59:24.000000000 +0200 >++++ struct.h 2009-03-03 18:02:41.000000000 +0200 >+@@ -10,6 +10,8 @@ >+ #define SCM_DBLOCKP(x) (SCM_OBJTYPE(x) == SOBJ_T_DBLOCK) >+ #define SCM_DBLOCK_ADDR(x) ((void*)SCM_CAR(x)) >+ #define SCM_DBLOCK_SIZE(x) ((long)(SCM_CDR(x))) >++#define SCM_DBLOCK_ADDR_SET(x,v) (SCM_CAR(x)=(v)) >++#define SCM_DBLOCK_SIZE_SET(x,v) (SCM_CDR(x)=(v)) >+ >+ #define SCM_DBLOCK_ALLOCATED (1L << ((sizeof(long)*8)-1)) >+ #define SCM_DBLOCK_SIZE_MASK ~(SCM_DBLOCK_ALLOCATED) >+@@ -34,6 +36,7 @@ >+ >+ #define SCM_STRUCT_DEFP(x) (SCM_OBJTYPE(x) == SOBJ_T_STRUCT_DEF) >+ #define SCM_STRUCT_DEF(x) ((SCM_StructDefAux *)SCM_AUX(x)) >++#define SCM_STRUCT_DEF_SET SCM_AUX_SET >+ >+ /*** Instance of a struct: >+ * - car points to struct def object, >diff -ruN qscheme.orig/files/patch-thread.c qscheme/files/patch-thread.c >--- qscheme.orig/files/patch-thread.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-thread.c 2009-03-03 17:27:00.000000000 +0200 >@@ -0,0 +1,42 @@ >+--- thread.c.orig 2009-03-03 17:22:45.000000000 +0200 >++++ thread.c 2009-03-03 17:26:27.000000000 +0200 >+@@ -123,7 +123,8 @@ >+ SOBJ scm_mutex_new() >+ { >+ SOBJ new = scm_newcell(SOBJ_T_MUTEX); >+- SCM_MUTEX(new) = scm_must_alloc(sizeof(pthread_mutex_t)); >++ /*SCM_MUTEX(new) = scm_must_alloc(sizeof(pthread_mutex_t));*/ >++ SCM_MUTEX_SET(new, scm_must_alloc(sizeof(pthread_mutex_t))); >+ pthread_mutex_init(SCM_MUTEX(new), NULL); >+ return(new); >+ } >+@@ -137,7 +138,8 @@ >+ } else { >+ scm_free(SCM_MUTEX(x)); >+ } >+- SCM_MUTEX(x) = NULL; >++ /*SCM_MUTEX(x) = NULL;*/ >++ SCM_MUTEX_SET(x, NULL); >+ } >+ } >+ >+@@ -201,7 +203,8 @@ >+ { >+ int n = 0; >+ SOBJ new = scm_newcell(SOBJ_T_SEMAPHORE); >+- SCM_SEMAPHORE(new) = scm_must_alloc(sizeof(sem_t)); >++ /*SCM_SEMAPHORE_SET(new) = scm_must_alloc(sizeof(sem_t));*/ >++ SCM_SEMAPHORE_SET(new, scm_must_alloc(sizeof(sem_t))); >+ if (nargs >= 1 && SCM_INUMP(arg[0])) { >+ n = SCM_INUM(n); >+ } >+@@ -218,7 +221,8 @@ >+ } else { >+ scm_free(SCM_SEMAPHORE(x)); >+ } >+- SCM_SEMAPHORE(x) = NULL; >++ /*SCM_SEMAPHORE(x) = NULL;*/ >++ SCM_SEMAPHORE_SET(x, NULL); >+ } >+ } >+ >diff -ruN qscheme.orig/files/patch-unix.c qscheme/files/patch-unix.c >--- qscheme.orig/files/patch-unix.c 1970-01-01 03:00:00.000000000 +0300 >+++ qscheme/files/patch-unix.c 2009-03-03 18:17:24.000000000 +0200 >@@ -0,0 +1,38 @@ >+--- unix.c.orig 2009-03-03 18:14:22.000000000 +0200 >++++ unix.c 2009-03-03 18:17:18.000000000 +0200 >+@@ -283,12 +283,14 @@ >+ >+ #define SCM_DIRP(x) (SCM_OBJTYPE(x) == SOBJ_T_DIR) >+ #define SCM_DIR(x) (DIR *)SCM_AUX(x) >++#define SCM_DIR_SET SCM_AUX_SET >+ >+ void scm_dir_sweep(SOBJ x) >+ { >+ if (SCM_DIR(x) != NULL) { >+ closedir(SCM_DIR(x)); >+- SCM_DIR(x) = NULL; >++ /*SCM_DIR(x) = NULL;*/ >++ SCM_DIR_SET(x, NULL); >+ } >+ } >+ >+@@ -300,7 +302,8 @@ >+ if (!SCM_STRINGP(name)) SCM_ERR("bad dir name", name); >+ if ((dir = opendir(SCM_STR_VALUE(name))) != NULL) { >+ new = scm_newcell(SOBJ_T_DIR); >+- SCM_DIR(new) = dir; >++ /*SCM_DIR(new) = dir;*/ >++ SCM_DIR_SET(new, dir); >+ return(new); >+ } >+ return(scm_false); >+@@ -312,7 +315,8 @@ >+ if (!SCM_DIRP(dir)) SCM_ERR("bad dir", dir); >+ if (SCM_DIR(dir) == NULL) SCM_ERR("already closed", dir); >+ r = closedir(SCM_DIR(dir)); >+- SCM_DIR(dir) = NULL; >++ /*SCM_DIR(dir) = NULL;*/ >++ SCM_DIR_SET(dir, NULL); >+ return(SCM_MKBOOL(r == 0)); >+ } >+ >diff -ruN qscheme.orig/files/patch-vm2.c qscheme/files/patch-vm2.c >--- qscheme.orig/files/patch-vm2.c 2004-11-01 23:59:34.000000000 +0200 >+++ qscheme/files/patch-vm2.c 2009-03-03 17:13:30.000000000 +0200 >@@ -1,5 +1,5 @@ >---- vm2.c.orig Wed Oct 27 19:33:03 2004 >-+++ vm2.c Wed Oct 27 19:33:16 2004 >+--- vm2.c.orig 2000-06-01 17:47:00.000000000 +0300 >++++ vm2.c 2009-03-03 17:12:14.000000000 +0200 > @@ -185,8 +185,8 @@ > > #define RETURN(value) { TOS=(value); NEXT; } >@@ -11,3 +11,13 @@ > > > /**************************************************************** >+@@ -392,7 +392,8 @@ >+ ef = (SCM_EnvFrame*)sp; \ >+ /* alloc space on stack for an env object and fill it's frame and \ >+ next fields */ \ >+- ((void*)sp) -= sizeof(Sobject); \ >++ /*((void*)sp) -= sizeof(Sobject);*/ \ >++ sp = ((void*)sp) - sizeof(Sobject); \ >+ SCM_ENV_FRAME((SOBJ)sp) = ef; \ >+ SCM_ENV_NEXT((SOBJ)sp) = nextenv; \ >+ env = (SOBJ)sp; \
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 132287
: 94188