仮想マシンを移植しようとしましたNet Bsd 7.0(amd64)。すでにLinuxからFree BSDやOpen BSDに移植されています。 NetBSDの新しく標準的なインストールにはいくつかの問題があります。netbsd pthread_create SIGABRT
コードをgccでコンパイルされている以下のフラグ: CC_OPTIONS = -pedantic -Wall -Wno-トリグラフ-Wno-長い長い-Wno-可変長-マクロ-fshort-はwchar -x C++ -fPIC -/usr/local "/ include -I" $(UAS_SRC) "
LD_OPTIONS = -shared-libgcc -L"/usr/lib "-L"/usr/usr/local// local/libの」-L "$(UAS_HOME)VTM/libに"のpthread_create()、プロセスが受信libcの実行時からSIGABRTでスレッドを作成しようとすると: GDBバックトレース:_lwp_killで
- ()__lwd_thr_create_stub()で/usr/lib/libc.so.12
- から_pthread_createで/usr/lib/libc.so.12
- から() /home/../syspsx_nt.cpp
で)CreerThread2(中/usr/libpthread.so.1
- からスピンロックを使用しようと、我々はセグメントVIを受信するとオレイド。ここでテストケースである:構造体typmttsysnatsynchronisationdirect
{
組合-
{
pthread_spinlock_tのHandleSpinLockのtypedef。
}選択;
TypMttSysNatSynchronisationDirect SynchronisationCourant;
int Reponse;
SynchronisationCourant =(TypMttSysNatSynchronisationDirect)malloc(sizeof(struct typmttsysnatsynchronisationdirect));
IF(SynchronisationCourant == NULL)
-
リターン(0)。
応答= pthread_spin_init(&(SynchronisationCourant-> Selection.HandleSpinLock)、PTHREAD_PROCESS_SHARED);
場合(!REPONSE = 0)
-
リターン(0);
if(Reponse!= 0)
-
return(0);
pthread_spin_initのコードをdisassemblying()とpthread_spin_lock())、pthread_spin_init(にNULLに設定されているpthread_spinlock内部関数へのポインタがあると思われる)、その間接的(pthread_spintrylockに呼ばれていますpthread_spinlock()によって呼び出されます。
ありがとうございました。
インデント済み。ごめんなさい。 –