[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


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
  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));
        return 0;
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

(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)))
    (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))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]