2017-12-12 53 views
1

私はx86 SEモードで単純なpthreadプログラムを実行しようとしていました。m5threadsを実行するには?

これを行う唯一の方法はm5threadsですか?

私はmakeを使用してlibpthreadをコンパイルしようとすると、私は以下のエラーを取得:

pthread.c:40:2: error: #error "spinlock routines not available for your arch!\n" 

は、私が行方不明です何かはありますか?たぶんいくつかの欠落しているパス変数か、どこかのコードのわずかな変更。私はファイルspinlock_x86.htls_defs.hを持っているからです。

答えて

1

いいえ、x86ホストでx86をシミュレートする場合は、m5threadsを使用する必要はありません。 gem5は、ホスト上の共有ライブラリでコードを実行することをサポートしています。したがって、プログラムを "-lpthread"でコンパイルしてgem5で実行するだけで済みます。

動作させるためには、runscriptを使いこなす必要があります。 IIRCを使用するには、正確なCPU数をスレッドとして設定し、各CPUのワークロードを同じバイナリに設定する必要があります。

+0

コマンドgcc -lpthread -o thread thread.cを使用しましたが、次のように/tmp/ccfigdKl.oというエラーが出ました: 'main '関数内: thread.c :(。text + 0xaf):未定義参照'pthread_create'への参照がありません thread.c :(。テキスト+ 0xd7):未定義の 'pthread_create 'への参照 thread.c :(テキスト+ 0xef):未定義の' pthread_joinへの参照' thread.c :(。テキスト+ 0x103 ): 'pthread_join 'への未定義参照 collect2:エラー:ldが1終了ステータスを返しました - -pthreadでコンパイルしようとしましたが、コンパイルはうまくいっていますが、SEモードでgem5で実行されません。 – nk1991

+0

warn:syscallを無視set_robust_list(...) 致命的:syscall futex(#240)が実装されていません。 メモリ使用量:583416 KBytes pthreadを使用してSEモードでコンパイルした後にこのエラーが発生する – nk1991

関連する問題