gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] Gcc 3.4 and GCL


From: Camm Maguire
Subject: Re: [Gcl-devel] Gcc 3.4 and GCL
Date: 13 May 2004 10:08:39 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!

"Mike Thomas" <address@hidden> writes:

> Hi Camm.
> 
> | And please accept
> | my apologies for being somewhat unresponsive of late -- am in the
> | middle of a work burst.
> 
> Same on both counts from me.
> 
> | 4) Everything else works fine for me.  I get no syntax errors, and
> |    need no include reordering.  Can you try to give me a minimum test
> |    case, with preprocessed (i.e. through cpp) output?
> 
> This was caused by a compiler command line parsing problem triggered by the
> trailing '/' in -I../h/.  I've made enquired with the MinGW32 people to see
> what the story is.
> 
> Making local adjustments here to usage of HDIR in "o/makefile" leads to the
> trouble outlined below where page returns a value larger than MAXPAGE.
> 

OK, I put in this check recently to prevent writing the type_map
arrays beyond bounds.  You were not using SGC anyway -- otherwise you
would have gotten a segfault here earlier.  You should be able to
continue with this patch:

Index: o/gbc.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/gbc.c,v
retrieving revision 1.13.4.2.2.10
diff -u -r1.13.4.2.2.10 gbc.c
--- o/gbc.c     7 May 2004 21:43:15 -0000       1.13.4.2.2.10
+++ o/gbc.c     13 May 2004 14:04:04 -0000
@@ -190,12 +190,13 @@
 enter_mark_origin(object *p)
 {
   unsigned long np=page(p);
-  if (np>=MAXPAGE)
-    error("Address supplied to enter_mar_origin out of range");
+/*   if (np>=MAXPAGE) */
+/*     error("Address supplied to enter_mar_origin out of range"); */
   if (mark_origin_max >= MARK_ORIGIN_MAX)
     error("too many mark origins");
 #ifdef SGC
-  sgc_type_map[np] |= SGC_PERM_WRITABLE ;
+  if (np<MAXPAGE)
+    sgc_type_map[np] |= SGC_PERM_WRITABLE ;
 #endif 
   mark_origin[mark_origin_max++] = p;
 }


This might give us a clue though -- yours seems to be the only
platform where the static areas are below the heap.

Take care,


> Haven't time now to look at the calculations by the page macro but
> hopefullly tomorrow.
> 
> Cheers
> 
> Mike Thomas.
> 
> ============================================================================
> =
> 
> $ gdb ./raw_pre_gcl.exe
> GNU gdb 6.0
> Copyright 2003 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i686-pc-mingw32"...
> (gdb) r
> Starting program: c:\cvs\stable\gcl-2.6.1\unixport/./raw_pre_gcl.exe
> 
> Unrecoverable error: Address supplied to enter_mar_origin out of range.
> 
> This application has requested the Runtime to terminate it in an unusual
> way.
> Please contact the application's support team for more information.
> 
> Program exited with code 03.
> (gdb) b FEerror
> Breakpoint 1 at 0x41b11e: file error.c, line 261.
> (gdb) r
> Starting program: c:\cvs\stable\gcl-2.6.1\unixport/./raw_pre_gcl.exe
> 
> Unrecoverable error: Address supplied to enter_mar_origin out of range.
> 
> This application has requested the Runtime to terminate it in an unusual
> way.
> Please contact the application's support team for more information.
> 
> Program exited with code 03.
> (gdb) b enter_mark_origin
> Breakpoint 2 at 0x4363c6: file gbc.c, line 192.
> (gdb) r
> Starting program: c:\cvs\stable\gcl-2.6.1\unixport/./raw_pre_gcl.exe
> 
> Breakpoint 2, enter_mark_origin (p=0x5aaa00) at gbc.c:192
> 192       unsigned long np=page(p);
> (gdb) where
> #0  enter_mark_origin (p=0x5aaa00) at gbc.c:192
> #1  0x00405d31 in gcl_init_alloc () at alloc.c:859
> #2  0x00407055 in malloc (size=56) at alloc.c:1413
> #3  0x00489d11 in __w32_sharedptr_initialize ()
> #4  0x00489b97 in __do_global_ctors ()
> #5  0x004027ab in main (argc=1, argv=0x3d2bf0, envp=0x3d2f18) at main.c:126
> (gdb) n
> 193       if (np>=MAXPAGE)
> (gdb) p np
> $1 = 984234
> (gdb) b gcl_init_alloc
> Breakpoint 3 at 0x405d02: file alloc.c, line 832.
> (gdb) r
> Starting program: c:\cvs\stable\gcl-2.6.1\unixport/./raw_pre_gcl.exe
> 
> Breakpoint 3, gcl_init_alloc () at alloc.c:832
> 832       if (initialized) return;
> (gdb) n
> 833       initialized=1;
> (gdb) n
> 858         malloc_list = Cnil;
> (gdb) n
> 859         enter_mark_origin(&malloc_list);
> (gdb) p malloc_list
> $2 = 0x49a340
> (gdb) p &malloc_list
> $3 = (object *) 0x5aaa00
> (gdb) s
> 
> Breakpoint 2, enter_mark_origin (p=0x5aaa00) at gbc.c:192
> 192       unsigned long np=page(p);
> (gdb) s
> 193       if (np>=MAXPAGE)
> (gdb) n
> 194         error("Address supplied to enter_mar_origin out of range");
> (gdb) q
> 
> =================================================================
> 
> Looking at _dbegin:
> 
> $ gdb ./raw_pre_gcl.exe
> GNU gdb 6.0
> Copyright 2003 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i686-pc-mingw32"...
> (gdb) b enter_mark_origin
> Breakpoint 1 at 0x4363c6: file gbc.c, line 192.
> (gdb) watch _dbegin
> Hardware watchpoint 2: _dbegin
> (gdb) r
> Starting program: c:\cvs\stable\gcl-2.6.1\unixport/./raw_pre_gcl.exe
> Hardware watchpoint 2: _dbeginHardware watchpoint 2: _dbeginHardware
> watchpoint
> 2: _dbeginHardware watchpoint 2: _dbeginHardware watchpoint 2:
> _dbeginHardware w
> atchpoint 2: _dbeginHardware watchpoint 2: _dbeginHardware watchpoint 2:
> _dbegin
> Hardware watchpoint 2: _dbeginHardware watchpoint 2: _dbeginHardware
> watchpoint
> 2: _dbeginHardware watchpoint 2: _dbeginHardware watchpoint 2: _dbegin
> Breakpoint 1, enter_mark_origin (p=0x5aaa00) at gbc.c:192
> 192       unsigned long np=page(p);
> (gdb) p _dbegin
> $1 = 269484032
> (gdb)
> (gdb) n
> 193       if (np>=MAXPAGE)
> (gdb) p /x np
> $3 = 0xf04aa
> (gdb) p /x MAXPAGE
> No symbol "MAXPAGE" in current context.
> (gdb) n
> 194         error("Address supplied to enter_mar_origin out of range");
> (gdb) q
> 
> 
> 
> |
> | Take care,
> |
> | "Mike Thomas" <address@hidden> writes:
> |
> | > Hi again.
> | >
> | > Having fixed the previously reported type check problems in the gmp3
> | > directory the build then fails dramatically in "o/main.c" due
> | to undefined
> | > types etc in the very first definition of "h/new_decl.h".
> | >
> | > Rearranging some of the headers in "h/include.h" gets rid of
> | those errors
> | > but still the following:
> | >
> | >
> | ==================================================================
> | ==========
> | > =============
> | > make[1]: Entering directory `/c/cvs/stable/gcl-2.6.1/o'
> | > gcc -c -g -Wall -DVOL=volatile -fsigned-char -fwritable-strings
> | -pipe -fno-z
> | > ero-initialized-in-bss -mms-bitfields -g  -mcpu=i386
> | -march=i386  -I/c/cvs/s
> | > table/gcl-2.6.1/o -I../h -I../gcl-tk main.c
> | > cc1.exe: note: -fwritable-strings is deprecated; see documentation for
> | > details In file included from ../h/include.h:74,                  from
> | > main.c:49: ../h/../h/new_decl.h: In function `fLbye':
> | > ../h/../h/new_decl.h:3: error: syntax error before '{' token
> | >
> | >
> | ==================================================================
> | ==========
> | > =============
> | >
> | > Apparently gcc 3.4 is a very different compiler to 3.x.  I am
> | pleased about
> | > its apparent pickiness about these things however as I hope it
> | will lead us
> | > to clues regarding the Windows instability problems.
> | >
> | > Cheers
> | >
> | > Mike Thomas.
> | >
> | >
> | >
> | >
> | >
> | > _______________________________________________
> | > Gcl-devel mailing list
> | > address@hidden
> | > http://mail.gnu.org/mailman/listinfo/gcl-devel
> | >
> | >
> | >
> |
> | --
> | Camm Maguire                                                address@hidden
> | ==========================================================================
> | "The earth is but one country, and mankind its citizens."  --  Baha'u'llah
> |
> |
> | _______________________________________________
> | Gcl-devel mailing list
> | address@hidden
> | http://mail.gnu.org/mailman/listinfo/gcl-devel
> |
> |
> 
> 
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

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