gc-7.1 のテストが通らない場合がある

gc-7.1 のテストが通らない場合がある。

症状

  • make check が一つ目のテストで止まる。
  • テストの1つが通らない
  • テストが通るときもある

と不安定。

フラグ

通らないときのフラグは以下の通り。

-DDONT_ADD_BYTE_AT_END=1 
-DLARGE_CONFIG=1 
-DNO_CLOCK=1 
-DGC_LINUX_THREADS=1 
-D_REENTRANT=1 
-DTHREAD_LOCAL_ALLOC=1 
-DNO_EXECUTE_PERMISSION=1 
-DALL_INTERIOR_POINTERS=1 
-DGC_GCJ_SUPPORT=1 
-DJAVA_FINALIZATION=1 
-DATOMIC_UNCOLLECTABLE=1
-fomit-frame-pointer 
-DUSE_I686_PREFETCH

AC_DEFINE(DONT_ADD_BYTE_AT_END) をやめてみる

うまく動いてる。ああ。それっぽいのをみつけた。
http://osdir.com/ml/programming.garbage-collection.boehmgc/2008-05/msg00009.html
うわ。 shiro さんが見つけたのか。世界は狭い。

ななめ読みしたところ THREAD_LOCAL_ALLOC しなければ大丈夫みたい。
というわけで無効にしました。

-DDONT_ADD_BYTE_AT_END=1 
-DLARGE_CONFIG=1 
-DNO_CLOCK=1 
-DNO_EXECUTE_PERMISSION=1 
-DALL_INTERIOR_POINTERS=1 
-DGC_GCJ_SUPPORT=1 
-DJAVA_FINALIZATION=1 
-DATOMIC_UNCOLLECTABLE=1
-fomit-frame-pointer 
-DUSE_I686_PREFETCH