boehm-gc test failure on sparc-linux

Christian Jönsson c.christian.joensson@telia.com
Thu Feb 7 10:46:00 GMT 2002


On Thu, Feb 07, 2002 at 08:51:32AM +0100, Christian Jönsson wrote:
> On Wed, Feb 06, 2002 at 04:34:53PM -0800, Boehm, Hans wrote:
> > This is a 32-bit binary?
> > 
> > It would be interesting to know what happens if you download
> > 
> > http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.1alpha3.tar.gz
> > 
> > unpack it, and type "make test".  Does it fail the same way?  
> > 
> > There are some general debugging hints for the collector in
> > 
> > http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html
> > 
> > Since I don't have access to a similar system, I will need more details ...
> > 
> > Hans
> 
> Sure, this is a ss20 (sun4m), i.e., 32-bit.
> 
> I downloaded the test and gave it a go, seg fault.
> 
> Here's the log of make test:
> 
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o if_mach ./if_mach.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o if_not_there ./if_not_there.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o threadlibs ./threadlibs.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o setjmp_test ./setjmp_t.c
> ./setjmp_t.c: In function `nested_sp':
> ./setjmp_t.c:57: warning: function returns address of local variable
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -c ./tests/test.c
> mv test.o tests/test.o
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o alloc.o alloc.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o reclaim.o reclaim.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o allchblk.o allchblk.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o misc.o misc.c
> rm -f mach_dep.o
> ./if_mach MIPS IRIX5 as  -o mach_dep.o ./mips_sgi_mach_dep.s
> ./if_mach MIPS RISCOS as  -o mach_dep.o ./mips_ultrix_mach_dep.s
> ./if_mach MIPS ULTRIX as  -o mach_dep.o ./mips_ultrix_mach_dep.s
> ./if_mach RS6000 "" as  -o mach_dep.o ./rs6000_mach_dep.s
> ./if_mach POWERPC MACOSX as  -o mach_dep.o ./powerpc_macosx_mach_dep.s
> ./if_mach SPARC SUNOS5 cc  -c -o mach_dep.o ./sparc_mach_dep.S
> ./if_mach SPARC SUNOS4 as  -o mach_dep.o ./sparc_sunos4_mach_dep.s
> ./if_mach SPARC OPENBSD as  -o mach_dep.o ./sparc_sunos4_mach_dep.s
> ./if_mach SPARC NETBSD as  -o mach_dep.o ./sparc_netbsd_mach_dep.s
> ./if_mach IA64 "" as  -o ia64_save_regs_in_stack.o ./ia64_save_regs_in_stack.s
> ./if_mach IA64 "" cc  -c -o mach_dep1.o -I./include ./mach_dep.c
> ./if_mach IA64 "" ld -r -o mach_dep.o mach_dep1.o ia64_save_regs_in_stack.o
> ./if_not_there mach_dep.o cc  -c -I./include ./mach_dep.c
> ^^^^Starting command^^^^
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o os_dep.o os_dep.c
> rm -f mark_rts.o
> ./if_mach ALPHA OSF1 cc  -c -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -Wo,-notail ./mark_rts.c
> ./if_not_there mark_rts.o cc  -c -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS ./mark_rts.c
> ^^^^Starting command^^^^
> ./mark_rts.c: In function `GC_approx_sp':
> ./mark_rts.c:337: warning: function returns address of local variable
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o headers.o headers.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o mark.o mark.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o obj_map.o obj_map.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o blacklst.o blacklst.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o finalize.o finalize.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o new_hblk.o new_hblk.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o dbg_mlc.o dbg_mlc.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o malloc.o malloc.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o stubborn.o stubborn.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o checksums.o checksums.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o solaris_threads.o solaris_threads.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o irix_threads.o irix_threads.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o linux_threads.o linux_threads.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o typd_mlc.o typd_mlc.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o ptr_chck.o ptr_chck.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o mallocx.o mallocx.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o solaris_pthreads.o solaris_pthreads.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o gcj_mlc.o gcj_mlc.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o specific.o specific.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o gc_dlopen.o gc_dlopen.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o backgraph.o backgraph.c
> cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o dyn_load.o dyn_load.c
> echo > base_lib
> rm -f dont_ar_1
> ./if_mach SPARC SUNOS5 touch dont_ar_1
> ./if_mach SPARC SUNOS5 ar rus gc.a alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o specific.o gc_dlopen.o backgraph.o dyn_load.o
> ./if_mach M68K AMIGA touch dont_ar_1
> ./if_mach M68K AMIGA ar -vrus gc.a alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o specific.o gc_dlopen.o backgraph.o dyn_load.o
> ./if_not_there dont_ar_1 ar ru gc.a alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o specific.o gc_dlopen.o backgraph.o dyn_load.o
> ^^^^Starting command^^^^
> ./if_not_there dont_ar_1 ranlib gc.a || cat /dev/null
> ^^^^Starting command^^^^
> rm -f gctest
> ./if_mach SPARC DRSNX cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o gctest  tests/test.o gc.a -lucb
> ./if_mach HP_PA HPUX cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o gctest  tests/test.o gc.a -ldld `./threadlibs`
> ./if_mach M68K AMIGA cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -UGC_AMIGA_MAKINGLIB -o gctest  tests/test.o gc.a `./threadlibs`
> ./if_not_there gctest cc  -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o gctest tests/test.o gc.a `./threadlibs`
> ^^^^Starting command^^^^
> ./setjmp_test
> This appears to be a SPARC running LINUX
> Stack appears to grow down, which is the default.
> A good guess for STACKBOTTOM on this machine is 0xeffff000.
> Note that this may vary between machines of ostensibly
> the same architecture (e.g. Sun 3/50s and 3/80s).
> On many machines the value is not fixed.
> A good guess for ALIGNMENT on this machine is 4.
> Generic mark_regs code may work
> ./gctest
> make: *** [KandRtest] Segmentation fault
> 
> and a stack trace in gdb gives us this:
> 
> chj@fw:~/gc6.1alpha3$ gdb gctest
> GNU gdb 5.1
> Copyright 2001 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"...(no debugging symbols found)...
> (gdb) run
> Starting program: /home/chj/gc6.1alpha3/gctest
> (no debugging symbols found)...(no debugging symbols found)...
> Program received signal SIGSEGV, Segmentation fault.
> 0x00016368 in GC_SysVGetDataStart ()
> (gdb) bt
> #0  0x00016368 in GC_SysVGetDataStart ()
> Cannot access memory at address 0x901222b8
> (gdb)
> 
> Anything more I can do?
> 
> /ChJ

I just figured I'd run the test building with warnings:

gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o if_mach ./if_mach.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o if_not_there ./if_not_there.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o threadlibs ./threadlibs.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o setjmp_test ./setjmp_t.c
setjmp_t.c: In function `nested_sp':
setjmp_t.c:57: warning: function returns address of local variable
setjmp_t.c: At top level:
setjmp_t.c:61: warning: return type defaults to `int'
setjmp_t.c: In function `main':
setjmp_t.c:87: warning: zero-length format string
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -c ./tests/test.c
tests/test.c: In function `typed_test':
tests/test.c:987: warning: unused variable `dummy'
tests/test.c: In function `run_one_test':
tests/test.c:1099: warning: suggest parentheses around && within ||
mv test.o tests/test.o
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o alloc.o alloc.c
alloc.c: In function `GC_stopped_mark':
alloc.c:444: warning: `start_time' might be used uninitialized in this function
alloc.c: In function `GC_set_fl_marks':
alloc.c:544: warning: `hhdr' might be used uninitialized in this function
alloc.c: In function `GC_clear_fl_marks':
alloc.c:569: warning: `hhdr' might be used uninitialized in this function
alloc.c: In function `GC_finish_collection':
alloc.c:604: warning: implicit declaration of function `GC_print_address_map'
alloc.c: In function `GC_expand_hp_inner':
alloc.c:897: warning: suggest parentheses around && within ||
alloc.c: In function `GC_collect_or_expand':
alloc.c:945: warning: suggest parentheses around && within ||
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o reclaim.o reclaim.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o allchblk.o allchblk.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o misc.o misc.c
rm -f mach_dep.o
./if_mach MIPS IRIX5 as  -o mach_dep.o ./mips_sgi_mach_dep.s
./if_mach MIPS RISCOS as  -o mach_dep.o ./mips_ultrix_mach_dep.s
./if_mach MIPS ULTRIX as  -o mach_dep.o ./mips_ultrix_mach_dep.s
./if_mach RS6000 "" as  -o mach_dep.o ./rs6000_mach_dep.s
./if_mach POWERPC MACOSX as  -o mach_dep.o ./powerpc_macosx_mach_dep.s
./if_mach SPARC SUNOS5 gcc-3.0 -g3 -Wall -c -o mach_dep.o ./sparc_mach_dep.S
./if_mach SPARC SUNOS4 as  -o mach_dep.o ./sparc_sunos4_mach_dep.s
./if_mach SPARC OPENBSD as  -o mach_dep.o ./sparc_sunos4_mach_dep.s
./if_mach SPARC NETBSD as  -o mach_dep.o ./sparc_netbsd_mach_dep.s
./if_mach IA64 "" as  -o ia64_save_regs_in_stack.o ./ia64_save_regs_in_stack.s
./if_mach IA64 "" gcc-3.0 -g3 -Wall -c -o mach_dep1.o -I./include ./mach_dep.c
./if_mach IA64 "" ld -r -o mach_dep.o mach_dep1.o ia64_save_regs_in_stack.o
./if_not_there mach_dep.o gcc-3.0 -g3 -Wall -c -I./include ./mach_dep.c
^^^^Starting command^^^^
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o os_dep.o os_dep.c
os_dep.c: In function `GC_get_stack_base':
os_dep.c:758: warning: unused variable `dummy'
os_dep.c:759: warning: unused variable `result'
rm -f mark_rts.o
./if_mach ALPHA OSF1 gcc-3.0 -g3 -Wall -c -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -Wo,-notail ./mark_rts.c
./if_not_there mark_rts.o gcc-3.0 -g3 -Wall -c -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS ./mark_rts.c
^^^^Starting command^^^^
mark_rts.c: In function `GC_approx_sp':
mark_rts.c:337: warning: function returns address of local variable
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o headers.o headers.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o mark.o mark.c
mark.c: In function `GC_mark_from':
mark.c:583: warning: unused variable `mark_word'
mark.c:683: warning: unused variable `mark_word'
mark.c:693: warning: unused variable `mark_word'
mark.c:516: warning: `limit' might be used uninitialized in this function
mark.c: In function `GC_mark_and_push':
mark.c:1203: warning: unused variable `mark_word'
mark.c: In function `GC_mark_and_push_stack':
mark.c:1230: warning: `r' might be used uninitialized in this function
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o obj_map.o obj_map.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o blacklst.o blacklst.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o finalize.o finalize.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o new_hblk.o new_hblk.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o dbg_mlc.o dbg_mlc.c
dbg_mlc.c: In function `GC_debug_realloc':
dbg_mlc.c:717: warning: `result' might be used uninitialized in this function
dbg_mlc.c: In function `GC_check_heap_proc':
dbg_mlc.c:822: warning: suggest parentheses around comparison in operand of &
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o malloc.o malloc.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o stubborn.o stubborn.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o checksums.o checksums.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o solaris_threads.o solaris_threads.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o irix_threads.o irix_threads.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o linux_threads.o linux_threads.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o typd_mlc.o typd_mlc.c
typd_mlc.c: In function `GC_typed_mark_proc':
typd_mlc.c:441: warning: unused variable `mark_word'
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o ptr_chck.o ptr_chck.c
ptr_chck.c: In function `GC_is_valid_displacement':
ptr_chck.c:168: warning: suggest parentheses around && within ||
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o mallocx.o mallocx.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o solaris_pthreads.o solaris_pthreads.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o gcj_mlc.o gcj_mlc.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o specific.o specific.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o gc_dlopen.o gc_dlopen.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o backgraph.o backgraph.c
gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS   -c -o dyn_load.o dyn_load.c
dyn_load.c: In function `GC_FirstDLOpenedLinkMap':
dyn_load.c:540: warning: unused variable `r'
echo > base_lib
rm -f dont_ar_1
./if_mach SPARC SUNOS5 touch dont_ar_1
./if_mach SPARC SUNOS5 ar rus gc.a alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o specific.o gc_dlopen.o backgraph.o dyn_load.o
./if_mach M68K AMIGA touch dont_ar_1
./if_mach M68K AMIGA ar -vrus gc.a alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o specific.o gc_dlopen.o backgraph.o dyn_load.o
./if_not_there dont_ar_1 ar ru gc.a alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dbg_mlc.o malloc.o stubborn.o checksums.o solaris_threads.o irix_threads.o linux_threads.o typd_mlc.o ptr_chck.o mallocx.o solaris_pthreads.o gcj_mlc.o specific.o gc_dlopen.o backgraph.o dyn_load.o
^^^^Starting command^^^^
./if_not_there dont_ar_1 ranlib gc.a || cat /dev/null
^^^^Starting command^^^^
rm -f gctest
./if_mach SPARC DRSNX gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o gctest  tests/test.o gc.a -lucb
./if_mach HP_PA HPUX gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o gctest  tests/test.o gc.a -ldld `./threadlibs`
./if_mach M68K AMIGA gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -UGC_AMIGA_MAKINGLIB -o gctest  tests/test.o gc.a `./threadlibs`
./if_not_there gctest gcc-3.0 -g3 -Wall -O -I./include -DATOMIC_UNCOLLECTABLE -DNO_SIGNALS -DNO_EXECUTE_PERMISSION -DSILENT -DALL_INTERIOR_POINTERS -o gctest tests/test.o gc.a `./threadlibs`
^^^^Starting command^^^^
./setjmp_test
This appears to be a SPARC running LINUX
Stack appears to grow down, which is the default.
A good guess for STACKBOTTOM on this machine is 0xeffff000.
Note that this may vary between machines of ostensibly
the same architecture (e.g. Sun 3/50s and 3/80s).
On many machines the value is not fixed.
A good guess for ALIGNMENT on this machine is 4.
Generic mark_regs code may work
./gctest
make: *** [KandRtest] Segmentation fault


and this is some more backtrace

Current directory is ~/gc6.1alpha3/
GNU gdb 5.1
Copyright 2001 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: /home/chj/gc6.1alpha3/gctest 

Program received signal SIGSEGV, Segmentation fault.
GC_SysVGetDataStart (max_page_size=16777216, etext_addr=0x1080000b) at os_dep.c:1055
(gdb) bt
#0  GC_SysVGetDataStart (max_page_size=16777216, etext_addr=0x1080000b) at os_dep.c:1055
Cannot access memory at address 0x90122178
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x000162f4 in GC_find_limit (p=Cannot access memory at address 0x11000120
) at os_dep.c:641
(gdb) bt
#0  0x000162f4 in GC_find_limit (p=Cannot access memory at address 0x11000120
) at os_dep.c:641
Cannot access memory at address 0x11000114
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
GC_mark_from (mark_stack_top=0xa0240008, mark_stack=Cannot access memory at address 0x900c2067
) at mark.c:654
(gdb) bt
#0  GC_mark_from (mark_stack_top=0xa0240008, mark_stack=Cannot access memory at address 0x900c2067
) at mark.c:654
Cannot access memory at address 0x900c2057
(gdb) c
Continuing.

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



More information about the Gcc-bugs mailing list