2016-12-05 14 views
1

"stress-ng"パッケージをコンパイルしてGEM5フルシステムシミュレータ内で使用するための静的リンク実行ファイルを生成しようとしています。"stress-ng"パッケージの静的にリンクされた実行可能ファイルをコンパイルする

このパッケージのタールボールは、hereからダウンロードできます。私がコンパイルしようとしているバージョンは0.07.08です。

このパッケージの動的リンクされた実行可能ファイルをコンパイルするには、 "make"するだけです。これは私のために働く。

しかし、GEM5のフルシステムシミュレーションから "stress-ng" exeを実行する必要があるため、exeが自己完結型であることを確認する必要があります。これは通常 "-static" CFLAGオプションを使用して行われますが、 "stress-ng"ではこのオプションを試してみるとエラーになります。

このエラーを再現するためにここで行うことです。編集「のMakefile」とライン#25の末尾に「-static」オプションを追加しライン25は、次のようになります。

/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libpthread.a(lowlevellock.o): In function `__lll_lock_wait_private': 
/build/eglibc-3GlaMS/eglibc-2.19/nptl/../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:78: multiple definition of `__lll_lock_wait_private' 
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libc.a(libc-lowlevellock.o):(.text+0x0): first defined here 
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libpthread.a(lowlevellock.o): In function `__lll_unlock_wake_private': 
/build/eglibc-3GlaMS/eglibc-2.19/nptl/../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:328: multiple definition of `__lll_unlock_wake_private' 
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libc.a(libc-lowlevellock.o):(.text+0x30): first defined here 
collect2: ld returned 1 exit status 
make: *** [stress-ng] Error 1 
:作る

CFLAGS += -Wall -Wextra -DVERSION='"$(VERSION)"' -O2 -std=gnu99 -static 

保存、その後、あなたは下のエラーが表示されます。

最後に、OSはUbuntu 14.04で、ccバージョンは4.6.4です。

ここに他のCFLAGオプションがありませんか?

答えて

0

私は静的リンクが可能なストレスngリポジトリに新しい修正を加えました。問題は-lcが-lpthreadの前にあって問題を引き起こしたことでした。

最新の変更を引き、その後でビルド:

STATIC = 1メイク

+0

あなたは、このツールの開発者である、あなたではありませんか?人を助けてくれてありがとう。私はもう1つ質問してください:gem5シミュレーションシステムでのstress-ngの使用を妨げる問題や制限はありますか?シミュレーションしたシステムの中からstress-ng(オプション "--cpu 4 -b 1 --vm 4 --vm-bytes 1M --timeout 4s")を試したときにエラーが発生したので、私は尋ねています。幸運にも、労働者の処刑を止めることはありませんでしたが、その重大さはどれほど深刻なのかよく分かりません。エラーは "stress-ng:error:[46]/sys/devices/system/cpuは存在しません"と表示されます。どんな考えですか? – user8420488483439

関連する問題