[Gc] GC_enable_incremental() fails on FreeBSD

Vitaly Magerya vmagerya at gmail.com
Mon Jul 23 11:00:06 PDT 2012


Previously I wrote:
>> There have not been many
>> commits. Could you please point me to the commit making crashes less
>> frequent?
>
> I'll try to bisect the problem, but it'll take a while. I'll report my
> findings in a week or so.

So, after some testing I found that:

1) Latest GC fails to build testing binaries when configured
   with --disable-threads; here's what it says:

[...]
libtool: link: gcc -fexceptions -Wall -Wextra -g -O2
-fno-strict-aliasing -o .libs/cordtest cordtest.o  ./.libs/libgc.so
./.libs/libcord.so $DIR/.libs/libgc.so -Wl,-rpath -Wl,/usr/local/lib
./.libs/libgc.so: undefined reference to `GC_get_suspend_signal'
gmake[2]: *** [cordtest] Error 1
gmake[2]: Leaving directory `$DIR'
gmake[1]: *** [check-am] Error 2
gmake[1]: Leaving directory `$DIR'
gmake: *** [check-recursive] Error 1

2) The problem that Alex reported (crash in GC_FreeBSDGetDataStart)
   was fixed in gc7_2alpha4-66-g1a5caf2.
3) The crash in GC_typed_mark_proc is present in both 7.2c and
   in the latest sources. It occurs with and without
   -DDONT_ADD_BYTE_AT_END; --enable-threads=posix is the only
   condition.
4) Before gc7_2alpha6-407-g0c14ea4 gctest crashed once in a few
   dozen attempts; after it -- once in a few hundred, sometimes
   once in more than a thousand.

Note that commit gc7_2alpha6-407-g0c14ea4 is where you enabled
parallel mark and thread local alloc by default for FreeBSD. I
can confirm that enabling those in 7.2c also reduces the frequency
of crashes, so I would recomment you to do that if there will
be another 7.2 release.


More information about the Gc mailing list