[Top][All Lists]
[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
- [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/11
- RE: [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/11
- RE: [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/11
- Re: [Gcl-devel] Gcc 3.4 and GCL, Camm Maguire, 2004/05/11
- RE: [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/13
- Re: [Gcl-devel] Gcc 3.4 and GCL,
Camm Maguire <=
- RE: [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/13
- Re: [Gcl-devel] Gcc 3.4 and GCL, Camm Maguire, 2004/05/18
- RE: [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/23
- Re: [Gcl-devel] Gcc 3.4 and GCL, David MENTRE, 2004/05/24
- RE: [Gcl-devel] Gcc 3.4 and GCL, Mike Thomas, 2004/05/24
- Re: [Gcl-devel] Gcc 3.4 and GCL, David MENTRE, 2004/05/25
- Re: [Gcl-devel] Gcc 3.4 and GCL, Vadim V. Zhytnikov, 2004/05/25
- [Gcl-devel] 2.6.2, Camm Maguire, 2004/05/26
- RE: [Gcl-devel] 2.6.2, Mike Thomas, 2004/05/29
- Re: [Gcl-devel] 2.6.2, Camm Maguire, 2004/05/27