[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] GCL on mingw
From: |
Vadim V. Zhytnikov |
Subject: |
[Gcl-devel] GCL on mingw |
Date: |
Wed, 10 Dec 2003 12:58:21 +0300 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.5) Gecko/20031006 |
Hi!
Trying to build recent GCL 2.6.1 on mingw I encountered
some strange problem on configure stage.
The following test fails
===========================================================
echo $ac_n "checking sizeof struct contblock""... $ac_c" 1>&6
echo "configure:3238: checking sizeof struct contblock" >&5
if test "$cross_compiling" = yes; then
echo Cannot find sizeof struct contblock;exit 1
else
cat > conftest.$ac_ext <<EOF
#line 3243 "configure"
#include "confdefs.h"
#include <stdio.h>
#define EXTER
#include "$MP_INCLUDE"
#include "`pwd`/h/enum.h"
#include "`pwd`/h/object.h"
int main(int argc,char **argv,char **envp) {
FILE *f=fopen("conftest1","w");
fprintf(f,"%u",sizeof(struct contblock));
fclose(f);
return 0;
}
EOF
===========================================================
Trouble makes are these two lines
#include "`pwd`/h/enum.h"
#include "`pwd`/h/object.h"
Due to some reason under mingw
#include "/home/vadim/gcl/h/enum.h"
signals an error: File not found.
I really don't understand such strange behavior
since ls /home/vadim/gcl/h/enum.h works fine.
But maybe we just can replace these two lines by
#include "h/enum.h"
#include "h/object.h"
With such modification I was able to build
ANSI GCL on mingw. My goal was to test strange
memory-related GCL crashes under mingw.
I tried various memory allocation tests -
exactly the same I used on Linux (see e.g.
atest.lisp in attachment). In general
results are practically the same on both
platforms with one important exception.
While on Linux I maximally can use 110K pages
(MAXPAGES=128K) on mingw all attempts
to allocate more than ~62000 pages
causes allocation error. GCL self terminates
with the message:
Unrecoverable error: Can't allocate
At present I don't know why this happens.
Any ideas?
--
Vadim V. Zhytnikov
<address@hidden>
<address@hidden>
(si::allocate-growth 'cons 1 1000 66 33)
(setq cnt 0)
(si::gbc-time 0)
(setq w nil)
(defun pass ()
(progn (setq cnt (1+ cnt))
(format t "***** Starting pass #~d" cnt)
(time(setq w (cons (make-list 3000000) w)))
(room)
(format t "***** End of pass #~d" cnt) (terpri)
(format t "***** Run time: ~,2F GC time: ~,2F (~,1F%)"
(/ (get-internal-run-time) 100.0)
(/ (si::gbc-time) 100.0)
(* (/ (si::gbc-time) (get-internal-run-time)) 100.0))
))
- [Gcl-devel] GCL on mingw,
Vadim V. Zhytnikov <=
Re: [Gcl-devel] GCL on mingw, Vadim V. Zhytnikov, 2003/12/12