[Gc] Re: Boehm GC on NetBSD 5.1

Ivan Maidanski ivmai at mail.ru
Sun Jan 15 22:42:14 PST 2012


Hi Bruno,

It (GC_data_start problem) has been fixed already - please checkout code from Git "release" (or "master") branch.

Please retry with fresh snapshot and report whether a problem with threadkey_test still exists.

Regards.

15 -1 2012, 23:08 Bruno Haible <bruno at clisp.org>:
> [Apologies for the previous private mail. I had looked for a bug report
>  address only in the README.QUICK, not at the project page
>  http://www.hpl.hp.com/personal/Hans_Boehm/gc/#contacts
>  Oh, btw. doc/README says to write to Hans Boehm personally...? ]
> 
> Hi,
> 
> Trying to build gc-7.2alpha6.tar.gz on NetBSD 5.1/x86, I get this build
> failure:
> 
> /bin/ksh ./libtool --tag=CC    --mode=compile gcc -DHAVE_CONFIG_H    -I./include -I./include  -I./libatomic_ops/src  -I./libatomic_ops/src -Wall -fexceptions -g -O2 -MT os_dep.lo -MD -MP -MF .deps/os_dep.Tpo -c -o os_dep.lo os_dep.c
> libtool: compile:  gcc -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -Wall -fexceptions -g -O2 -MT os_dep.lo -MD -MP -MF .deps/os_dep.Tpo -c os_dep.c  -fPIC -DPIC -o .libs/os_dep.o
> os_dep.c:501: error: redefinition of 'GC_data_start'
> os_dep.c:452: error: previous definition of 'GC_data_start' was here
> *** Error code 1
> 
> There are two codes for the same purpose.
> 
> * If I disable the defined(NETBSD) && defined(__ELF__) code, enabling
>   only the SEARCH_FOR_DATA_START code, then *sometimes* all tests pass:
> 
> Completed 6 tests
> Allocated 11991240 collectable objects
> Allocated 1218 uncollectable objects
> Allocated 7500000 atomic objects
> Allocated 137760 stubborn objects
> Finalized 13219/13219 objects - finalization is probably ok
> Total number of bytes allocated is 668700882
> Final heap size is 7360512 bytes
> Collector appears to work
> Completed 862 collections
> PASS: gctest
> Leaked composite object at 0x532eb0 (tests/leak_test.c:19, sz=8, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x533e90 (tests/leak_test.c:19, sz=9, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x533ee0 (tests/leak_test.c:19, sz=10, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x533f30 (tests/leak_test.c:19, sz=11, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x533f80 (tests/leak_test.c:19, sz=12, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x532ef0 (tests/leak_test.c:19, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x532f30 (tests/leak_test.c:19, sz=5, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x532f70 (tests/leak_test.c:19, sz=6, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x532fb0 (tests/leak_test.c:19, sz=7, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> Leaked composite object at 0x532ff0 (tests/leak_test.c:12, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x40095f
> 
> PASS: leaktest
> Final heap size is 131072
> PASS: middletest
> GC_check_heap_block: found smashed heap objects:
>  0x53ffb8 in or near object at 0x53ff90 (tests/smash_test.c:22, sz=40)
>         Caller at allocation:
>                 ##PC##= 0x4008bf
> 
> GC_check_heap_block: found smashed heap objects:
>  0x53ffb8 in or near object at 0x53ff90 (tests/smash_test.c:22, sz=40)
>         Caller at allocation:
>                 ##PC##= 0x4008bf
> 
> GC_check_heap_block: found smashed heap objects:
>  0x5c8cb8 in or near object at 0x5c8c90 (tests/smash_test.c:22, sz=40)
>         Caller at allocation:
>                 ##PC##= 0x4008bf
>  0x53ffb8 in or near object at 0x53ff90 (tests/smash_test.c:22, sz=40)
>         Caller at allocation:
>                 ##PC##= 0x4008bf
> 
> PASS: smashtest
> PASS: hugetest
> PASS: staticrootstest
> Leaked composite object at 0x534ff0 (tests/thread_leak_test.c:12, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x7f7ffdc1b179
> 
> Leaked composite object at 0x534ef0 (tests/thread_leak_test.c:12, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x7f7ffdc1b179
> 
> Leaked composite object at 0x534eb0 (tests/thread_leak_test.c:12, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x7f7ffdc1b179
> 
> Leaked composite object at 0x534ff0 (tests/thread_leak_test.c:12, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x7f7ffdc1b179
> 
> Leaked composite object at 0x534ef0 (tests/thread_leak_test.c:12, sz=4, NORMAL)
>         Caller at allocation:
>                 ##PC##= 0x7f7ffdc1b179
> 
> PASS: threadleaktest
> PASS: threadkey_test
> PASS: initsecondarythread
> ==================
> All 9 tests passed
> ==================
> 
>   Whereas *sometimes*, the tests hang after 'PASS: threadleaktest', i.e.
>   inside the threadkey_test.
> 
> * If, on the other hand, I disable the SEARCH_FOR_DATA_START code
>   (SEARCH_FOR_DATA_START is defined in include/private/gcconfig.h line 2179)
>   and enable only the defined(NETBSD) && defined(__ELF__) code, then
>   I get a compilation error
> os_dep.c: In function 'GC_register_data_segments':
> os_dep.c:1925: error: 'DATASTART' undeclared (first use in this function)
> 
> What is the right fix? I looked a bit at porting.html, but it looks
> complicated.
> 
> Bruno
> 
> 



More information about the Gc mailing list