gcc-3.1 2002-04-03 libjava failures on sparc-linux?

Christian Jönsson c.christian.joensson@telia.com
Wed Apr 10 05:17:00 GMT 2002


On Tue, Apr 09, 2002 at 06:19:01PM -0700, Boehm, Hans wrote:
> > -----Original Message-----
> > From: Christian Jönsson [mailto:c.christian.joensson@telia.com]
> > (gdb) r
> > Starting program: 
> > /share2/gcc-rel/objdir-gcc-3.1+binutils-2.12-cvs/sparc-linux/l
> > ibjava/testsuite/cxxtest 
> > 
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x506d6f60 in GC_push_all_eager (bottom=0xeaffe3d4 "P\0022H@", 
> >     top=0xf0000000 <Address 0xf0000000 out of bounds>)
> >     at /share2/gcc-rel/gcc/boehm-gc/mark.c:1349
> > 1349		q = *p;
> > (gdb) bt
> > #0  0x506d6f60 in GC_push_all_eager (bottom=0xeaffe3d4 "P\0022H@", 
> >     top=0xf0000000 <Address 0xf0000000 out of bounds>)
> >     at /share2/gcc-rel/gcc/boehm-gc/mark.c:1349
> > #1  0x506d7058 in GC_push_all_stack_partially_eager (
> >     bottom=0xeaffe3d4 "P\0022H@", 
> >     top=0xf0000000 <Address 0xf0000000 out of bounds>, 
> >     cold_gc_frame=0xeaffe5bc "") at 
> > /share2/gcc-rel/gcc/boehm-gc/mark.c:1386
> 
> This is actually rather suggestive.  It was trying to mark a stack between
> 0xeaffe3d4 and 0xf0000000.  That's a big stack.  I suspect one of the
> following:
> 
> 1) Java is compiled with thread support, but the collector gets configures
> without GC_LINUX_THREADS defined.  Thus it's trying to mark between a thread
> stack pointer and the base of the main stack.
> 
> 2) The default stack base of (specified in gcconfig.h) of 0xf0000000 is
> wrong on your machine.  Try stopping a toy program in main and print $sp
> from gdb to see whether the stack base looks plausible.

I'm afraid I ran this test on a ss20 UP machine, and not the ss20 SMP
machine I built on... Here's a new run for gcc-3.1 2002-04-08.

This was on a Debian Woody (test release) sun4m system with these
packages:

binutils                           2.12.90.0.1-1
dejagnu                            1.4.2-1.1
gcc                                2:2.95.4-14 (Debian prerelease)
gcc-2.95			   1:2.95.4-5 (Debian prerelease)
kernel-image-2.2.20-sun4dm-smp     9
libc6                              2.2.5-4

LAST_UPDATED: Tue Apr  9 06:34:44 UTC 2002


# This directory was configured as follows:
/share2/gcc-rel/gcc/configure --host=sparc-linux --prefix=/usr --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --enable-symvers --without-x --without-included-gettext --disable-checking


i.e., no threads as some suspect threads problems.


chj@fw:/share2/gcc-rel/objdir/sparc-linux/libjava/testsuite$ env LD_LIBRARY_PATH=`pwd`/../.libs:`pwd`/../../../gcc:.:/usr/lib/debug ~/gdb cxxtest
GNU gdb 5.1.90_20020403
Copyright 2002 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 "sparc-linux"...
(gdb) r
Starting program: /share2/gcc-rel/objdir/sparc-linux/libjava/testsuite/cxxtest 

Program received signal SIGSEGV, Segmentation fault.
0x506d9bc8 in GC_push_all_eager (bottom=0xeaffe444 "P\0020", 
    top=0xf0000000 <Address 0xf0000000 out of bounds>)
    at /share2/gcc-rel/gcc/boehm-gc/mark.c:1349
1349		q = *p;
(gdb) bt
#0  0x506d9bc8 in GC_push_all_eager (bottom=0xeaffe444 "P\0020", 
    top=0xf0000000 <Address 0xf0000000 out of bounds>)
    at /share2/gcc-rel/gcc/boehm-gc/mark.c:1349
#1  0x506d9cc0 in GC_push_all_stack_partially_eager (
    bottom=0xeaffe444 "P\0020", 
    top=0xf0000000 <Address 0xf0000000 out of bounds>, 
    cold_gc_frame=0xeaffe62c "") at /share2/gcc-rel/gcc/boehm-gc/mark.c:1386
#2  0x506dbaf0 in GC_push_current_stack (cold_gc_frame=0xeaffe62c "")
    at /share2/gcc-rel/gcc/boehm-gc/mark_rts.c:457
#3  0x506dbc58 in GC_push_roots (all=1, cold_gc_frame=0xeaffe62c "")
    at /share2/gcc-rel/gcc/boehm-gc/mark_rts.c:571
#4  0x506d7958 in GC_mark_some (cold_gc_frame=0xeaffe62c "")
    at /share2/gcc-rel/gcc/boehm-gc/mark.c:322
#5  0x506cdb20 in GC_stopped_mark (stop_func=0x506ccca0 <GC_never_stop_func>)
    at /share2/gcc-rel/gcc/boehm-gc/alloc.c:489
#6  0x506cd6a8 in GC_try_to_collect_inner (
    stop_func=0x506ccca0 <GC_never_stop_func>)
    at /share2/gcc-rel/gcc/boehm-gc/alloc.c:350
#7  0x506dce14 in GC_init_inner () at /share2/gcc-rel/gcc/boehm-gc/misc.c:673
#8  0x506dc880 in GC_init () at /share2/gcc-rel/gcc/boehm-gc/misc.c:455
#9  0x506d3ac8 in GC_init_gcj_malloc (mp_index=0, mp=0x506c9c14)
    at /share2/gcc-rel/gcc/boehm-gc/gcj_mlc.c:60
#10 0x506ca870 in _Jv_InitGC() () at /share2/gcc-rel/gcc/libjava/boehm.cc:465
#11 0x5053f8fc in _Jv_CreateJavaVM(void*) ()
    at /share2/gcc-rel/gcc/libjava/prims.cc:892
#12 0x5053fd20 in _Jv_RunMain(java::lang::Class*, char const*, int, char const**, bool) (klass=0x20f74, name=0x0, argc=1, argv=0xeaffea84, is_jar=false)
    at /share2/gcc-rel/gcc/libjava/prims.cc:982
#13 0x00010aac in main (argc=1, argv=0xeaffea84) at /tmp/cclCWPMk.i:11
(gdb) c
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) 



More information about the Java mailing list