New upstream release;Cleanup xdrfuns.c for Axiom;Reenable xgcl build - gcl.git - GNU Common Lisp

index : gcl.git
GNU Common Lisp
summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamm Maguire <camm@debian.org>2003年03月20日 15:24:39 +0000
committerCamm Maguire <camm@debian.org>2003年03月20日 15:24:39 +0000
commit86e2e63bde76c4c55bba2c78e24fe2bedd81f169 (patch)
tree52828f5684d87a04d8c81f8b50d14f716e0ed168
parent4bc9355c349a01f9efe1218bed6189d62cb77964 (diff)
downloadgcl-Version_2_5_1.tar.gz
New upstream release;Cleanup xdrfuns.c for Axiom;Reenable xgcl buildVersion_2_5_1
Diffstat
-rw-r--r--gcl/debian/changelog 8
-rwxr-xr-xgcl/minvers 2
-rwxr-xr-xgcl/o/xdrfuns.c 168
-rw-r--r--gcl/unixport/makefile 6
-rw-r--r--gcl/xgcl-2/Events.c 1
-rw-r--r--gcl/xgcl-2/XStruct-4.c 1
-rw-r--r--gcl/xgcl-2/general-c.c 1
-rw-r--r--gcl/xgcl-2/makefile 17
-rw-r--r--gcl/xgcl-2/sysdef.lisp 2
-rw-r--r--gcl/xgcl-2/sysinit.lsp 7
10 files changed, 139 insertions, 74 deletions
diff --git a/gcl/debian/changelog b/gcl/debian/changelog
index 4eba3b965..288808bd8 100644
--- a/gcl/debian/changelog
+++ b/gcl/debian/changelog
@@ -1,3 +1,11 @@
+gcl (2.5.2-1) unstable; urgency=low
+
+ * New upstream release
+ * Cleanup xdrfuns.c for Axiom
+ * Reenable xgcl build
+
+ -- Camm Maguire <camm@enhanced.com> 2003年3月20日 09:15:54 -0500
+
gcl (2.5.1-1) unstable; urgency=high
* some optimization now on hppa
diff --git a/gcl/minvers b/gcl/minvers
index a75b92f1e..ef425ca98 100755
--- a/gcl/minvers
+++ b/gcl/minvers
@@ -1 +1 @@
-5.1
+5.2
diff --git a/gcl/o/xdrfuns.c b/gcl/o/xdrfuns.c
index 381f76d98..69fd9c38e 100755
--- a/gcl/o/xdrfuns.c
+++ b/gcl/o/xdrfuns.c
@@ -15,7 +15,6 @@ License for more details.
*/
-
#ifdef HAVE_XDR
#ifdef AIX3
@@ -35,85 +34,122 @@ siGxdr_open(f)
xdrstdio_create(xdrs, f->sm.sm_fp,
(f->sm.sm_mode == smm_input ? XDR_DECODE :
f->sm.sm_mode == smm_output ? XDR_ENCODE :
- FEerror("stream not input or output",0)))
+ (FEerror("stream not input or output",0),XDR_ENCODE)))
;
return ar;
}
object
-siGxdr_write(str,elt)
- object str,elt;
-{ XDR *xdrp= (XDR *) str->ust.ust_self;
+siGxdr_write(object str,object elt) {
+
+ XDR *xdrp= (XDR *) str->ust.ust_self;
+ xdrproc_t e;
- switch (type_of(elt))
- { case t_fixnum:
- if(!xdr_int(xdrp,&fix(elt))) goto error;
- return elt;
- case t_longfloat:
- if(!xdr_double(xdrp,&lf(elt))) goto error;
- return elt;
- case t_shortfloat:
- if(!xdr_float(xdrp,&sf(elt))) goto error;
- return elt;
- case t_vector:
- if(!xdr_array(xdrp,(char **)&elt->v.v_self,
- &elt->v.v_fillp,
- elt->v.v_dim,
- aet_sizes[elt->v.v_elttype],
- (elt->v.v_elttype == aet_lf ? xdr_double :
- elt->v.v_elttype == aet_sf ? xdr_float :
- elt->v.v_elttype == aet_fix ? xdr_int :
- elt->v.v_elttype == aet_short ? xdr_short :
- (FEerror("unsupported xdr size",0),xdr_short))))
- goto error ;
- return elt;
- default:
- FEerror("unsupported xdr ~a",1,elt);
- }
+ switch (type_of(elt)) {
+ case t_fixnum:
+ if(!xdr_long(xdrp,&fix(elt))) goto error;
+ break;
+ case t_longfloat:
+ if(!xdr_double(xdrp,&lf(elt))) goto error;
+ break;
+ case t_shortfloat:
+ if(!xdr_float(xdrp,&sf(elt))) goto error;
+ break;
+ case t_vector:
+
+ switch(elt->v.v_elttype) {
+ case aet_lf:
+ e=(xdrproc_t)xdr_double;
+ break;
+ case aet_sf:
+ e=(xdrproc_t)xdr_float;
+ break;
+ case aet_fix:
+ e=(xdrproc_t)xdr_long;
+ break;
+ case aet_short:
+ e=(xdrproc_t)xdr_short;
+ break;
+ default:
+ FEerror("unsupported xdr size",0);
+ goto error;
+ break;
+ }
+ if(!xdr_array(xdrp,(char **)&elt->v.v_self,
+ &elt->v.v_fillp,
+ elt->v.v_dim,
+ aet_sizes[elt->v.v_elttype],
+ e))
+ goto error;
+ break;
+ default:
+ FEerror("unsupported xdr ~a",1,elt);
+ break;
+ }
return elt;
error:
FEerror("bad xdr read",0);
- }
+ return elt;
+}
object
-siGxdr_read(str,elt)
- object str,elt;
-{ XDR *xdrp= (XDR *) str->ust.ust_self;
- switch (type_of(elt))
- { case t_fixnum:
- {int l;
-
- if(!xdr_int(xdrp,&l)) goto error;
- return make_fixnum(l);}
- break;
- case t_longfloat:
- { double x;
- if(!xdr_double(xdrp,&x)) goto error;
- return make_longfloat(x);}
- case t_shortfloat:
- { float x;
- if(!xdr_float(xdrp,&x)) goto error;
- return make_shortfloat(x);}
- case t_vector:
- if(! xdr_array(xdrp,(char **)&elt->v.v_self,
- &elt->v.v_fillp,
- elt->v.v_dim,
- aet_sizes[elt->v.v_elttype],
- (elt->v.v_elttype == aet_lf ? xdr_double :
- elt->v.v_elttype == aet_sf ? xdr_float :
- elt->v.v_elttype == aet_fix ? xdr_int :
- elt->v.v_elttype == aet_short ? xdr_short :
- (FEerror("unsupported xdr size",0),xdr_short))))
- goto error;
- return elt;
- default:
- FEerror("unsupported xdr ~a",1,elt);
- }
- error:
+siGxdr_read(object str,object elt) {
+
+ XDR *xdrp= (XDR *) str->ust.ust_self;
+ xdrproc_t e;
+
+ switch (type_of(elt)) {
+ case t_fixnum:
+ {fixnum l;
+ if(!xdr_long(xdrp,&l)) goto error;
+ return make_fixnum(l);}
+ break;
+ case t_longfloat:
+ {double x;
+ if(!xdr_double(xdrp,&x)) goto error;
+ return make_longfloat(x);}
+ case t_shortfloat:
+ {float x;
+ if(!xdr_float(xdrp,&x)) goto error;
+ return make_shortfloat(x);}
+ case t_vector:
+ switch(elt->v.v_elttype) {
+ case aet_lf:
+ e=(xdrproc_t)xdr_double;
+ break;
+ case aet_sf:
+ e=(xdrproc_t)xdr_float;
+ break;
+ case aet_fix:
+ e=(xdrproc_t)xdr_long;
+ break;
+ case aet_short:
+ e=(xdrproc_t)xdr_short;
+ break;
+ default:
+ FEerror("unsupported xdr size",0);
+ goto error;
+ break;
+ }
+
+ if(!xdr_array(xdrp,(char **)&elt->v.v_self,
+ &elt->v.v_fillp,
+ elt->v.v_dim,
+ aet_sizes[elt->v.v_elttype],
+ e))
+ goto error;
+ return elt;
+ break;
+ default:
+ FEerror("unsupported xdr ~a",1,elt);
+ return elt;
+ break;
+ }
+ error:
FEerror("bad xdr read",0);
return elt;
}
-static
+static void
init_xdrfuns()
{ make_si_sfun("XDR-WRITE",siGxdr_write,
ARGTYPE2(f_object,f_object)|RESTYPE(f_object));
diff --git a/gcl/unixport/makefile b/gcl/unixport/makefile
index cf834a26f..e3820fa47 100644
--- a/gcl/unixport/makefile
+++ b/gcl/unixport/makefile
@@ -51,6 +51,9 @@ $(LSPDIR)/auto_new.lsp: $(LSPDIR)/auto.lsp
init_gcl.lsp.tmp: init_gcl.lsp.in
cp $< $@
+init_xgcl.lsp.tmp: init_gcl.lsp.tmp
+ ln -snf $< $@
+
init_pcl_gcl.lsp.tmp: init_pcl_gcl.lsp.in ../cmpnew/cmpmain.lsp \
../pcl/sys-package.lisp ../clcs/package.lisp \
$(shell ls -1 ../clcs/clcs_*.lisp)
@@ -107,6 +110,9 @@ libgcl.a: $(FIRST_FILE) $(OBJS) sys_gcl.o $(LAST_FILE) gmpfiles bfdfiles
rm -rf $@
ar rs $@ $(filter %.o,$^) $(shell find gmp bfd -name "*.o")
+libxgcl.a: libgcl.a
+ ln -snf $< $@
+
libansi_gcl.a: $(FIRST_FILE) $(OBJS) $(ANSIOBJS) sys_ansi_gcl.o $(LAST_FILE) gmpfiles bfdfiles
rm -rf $@
ar rs $@ $(filter %.o,$^) $(shell find gmp bfd -name "*.o")
diff --git a/gcl/xgcl-2/Events.c b/gcl/xgcl-2/Events.c
index fea1b2b04..26bf50a8b 100644
--- a/gcl/xgcl-2/Events.c
+++ b/gcl/xgcl-2/Events.c
@@ -21,6 +21,7 @@
; Some of the files that interface to the Xlib are adapted from DEC/MIT files.
; See the file dec.copyright for details. */
+#include <stdlib.h>
#include <X11/Xlib.h>
#include "include.h"
diff --git a/gcl/xgcl-2/XStruct-4.c b/gcl/xgcl-2/XStruct-4.c
index 12d2c6eb2..46b4ae9f7 100644
--- a/gcl/xgcl-2/XStruct-4.c
+++ b/gcl/xgcl-2/XStruct-4.c
@@ -21,6 +21,7 @@
; Some of the files that interface to the Xlib are adapted from DEC/MIT files.
; See the file dec.copyright for details. */
+#include <stdlib.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
diff --git a/gcl/xgcl-2/general-c.c b/gcl/xgcl-2/general-c.c
index e0a871a3c..b2eff4c07 100644
--- a/gcl/xgcl-2/general-c.c
+++ b/gcl/xgcl-2/general-c.c
@@ -21,6 +21,7 @@
; Some of the files that interface to the Xlib are adapted from DEC/MIT files.
; See the file dec.copyright for details. */
+#include <stdlib.h>
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
diff --git a/gcl/xgcl-2/makefile b/gcl/xgcl-2/makefile
index 62dcc8991..fb465102f 100644
--- a/gcl/xgcl-2/makefile
+++ b/gcl/xgcl-2/makefile
@@ -38,7 +38,7 @@ maxobjs: $(shell echo *.lsp) $(PORTDIR)/saved_gcl
'(xlib::compile-xgcl)' | $(LISP)
$(PORTDIR)/saved_$(SYSTEM): $(C_OBJS) maxobjs
- (cd $(PORTDIR) ; $(MAKE) saved_xgcl "INIT_SYSTEM_LSP=init_gcl.lsp" "SYSTEM=$(SYSTEM)" "SYSTEM_OBJS=`cat $(SYSDIR)/maxobjs` $(C_OBJS) " "LIBSYSTEM= $(X_LIBS) " "PORTDIR=$(PORTDIR)")
+ (cd $(PORTDIR) ; $(MAKE) saved_xgcl "INIT_SYSTEM_LSP=init_gcl.lsp" "SYSTEM=$(SYSTEM)" "SYSTEM_OBJS=`cat $(SYSDIR)/maxobjs` $(C_OBJS) " "EXTRA_LD_LIBS= $(X_LIBS) " "PORTDIR=$(PORTDIR)")
rm -f $(PORTDIR)/raw_$(SYSTEM)
Xgcl:
@@ -47,19 +47,22 @@ Xgcl:
############ the C code ###############
-$(SYSDIR)/Xutil-2.o: $(SYSDIR)/Xutil-2.c
+cmpinclude.h: ../h/cmpinclude.h
+ ln -snf $< $@
+
+$(SYSDIR)/Xutil-2.o: cmpinclude.h $(SYSDIR)/Xutil-2.c
$(CC) -c Xutil-2.c $(CFLAGS)
-$(SYSDIR)/Events.o: $(SYSDIR)/Events.c
+$(SYSDIR)/Events.o: cmpinclude.h $(SYSDIR)/Events.c
$(CC) -c Events.c $(CFLAGS)
-$(SYSDIR)/XStruct-2.o: $(SYSDIR)/XStruct-2.c
+$(SYSDIR)/XStruct-2.o: cmpinclude.h $(SYSDIR)/XStruct-2.c
$(CC) -c XStruct-2.c $(CFLAGS)
-$(SYSDIR)/XStruct-4.o: $(SYSDIR)/XStruct-4.c
+$(SYSDIR)/XStruct-4.o: cmpinclude.h $(SYSDIR)/XStruct-4.c
$(CC) -c XStruct-4.c $(CFLAGS)
-general-c.o: general-c.c
+general-c.o: cmpinclude.h general-c.c
$(CC) -c general-c.c $(CFLAGS)
tar:
@@ -69,5 +72,5 @@ tar1:
(cd .. ; tar cvf - $(TARD)/*.lsp $(TARD)/*.lisp $(TARD)/*.c $(TARD)/*.paper $(TARD)/README $(TARD)/makefile $(TARD)/version | gzip -c > $(TARD).tgz)
clean:
- rm -f *.o *.data Xgcl maxobjs $(PORTDIR)/saved_$(SYSTEM)
+ rm -f *.o *.data Xgcl maxobjs $(PORTDIR)/saved_$(SYSTEM) cmpinclude.h
diff --git a/gcl/xgcl-2/sysdef.lisp b/gcl/xgcl-2/sysdef.lisp
index ecd195b39..c7d135715 100644
--- a/gcl/xgcl-2/sysdef.lisp
+++ b/gcl/xgcl-2/sysdef.lisp
@@ -19,7 +19,9 @@
; Some of the files that interface to the Xlib are adapted from DEC/MIT files.
; See the file dec.copyright for details.
+(make-package :XLIB)
(in-package :XLIB)
+(sys::use-package '(:lisp :system :sys))
(defvar *files* '( "Xlib"
"Xutil"
diff --git a/gcl/xgcl-2/sysinit.lsp b/gcl/xgcl-2/sysinit.lsp
index 4da8e4838..78ad62604 100644
--- a/gcl/xgcl-2/sysinit.lsp
+++ b/gcl/xgcl-2/sysinit.lsp
@@ -32,6 +32,12 @@
;;of files which are linked into an image.
(clines "#define init_or_load(fn,file) do {extern void fn(void); init_or_load1(fn,file);} while(0)")
+(clines "static void")
+(clines "load1(char *x) {")
+(clines "printf(\"loading %s\\n\",x);")
+(clines "fflush(stdout);")
+(clines "load(x);")
+(clines "}")
#.
(let ((files *files*))
@@ -39,6 +45,7 @@
(with-open-file (st "maxobjs" :direction :output)
`(progn
(clines "object user_init() {")
+ (clines "load1(\"../xgcl-2/sysdef.lisp\");")
,@(sloop::sloop for x in files
for f = (substitute #\_ #\- x)
for ff = (namestring (truename (format nil "~a.o" x)))
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月01日 23:51:33 +0000

AltStyle によって変換されたページ (->オリジナル) /