0
RH 6.2からC++ RHEL 5.4アプリケーションを移行し、アプリケーションが壊れていることが判明しました。我々の調査の1つは、5.4ボックスのコードが「futex」を参照するという結果につながる。アウトに注意してくださいアプリは32ビットのコンパイラオプションを使用してコンパイルされた -Linux futex 5.4 OSカーネルバージョン2.6.9に問題がある
grep futex tool_strace.txt futex(0xff8ea454, FUTEX_WAKE_PRIVATE, 1) = 0 futex(0xf6d1f4fc, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xf6c10a4c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 As per http://www.akkadia.org/drepper/assumekernel.html I added the code on 5.4 build - setenv("LD_ASSUME_KERNEL" , "2.4.1" , 1); // to use Linux Threads
しかし、straceのダンプはまだ呼び出されている「のfutex」私を示しています。
すべてのアドレスff8ea454、f6d1f4fcおよびf6c10a4cは32ビットのアドレスです。だから私の前提が正しければ、どのようにして 'futex'呼び出しを抑制するか、まったく呼び出さないようにすることができます。
futexコールに関する既知の問題はありますか?
システムの設定である - 私は、私たちがすることができます教えてください のLinuxボックス2.6.18-164.el5#1 SMP火8月18日夜03時51分48秒EDT 2009 x86_64のx86_64でのx86_64のGNU/Linuxの その問題を避けるためにそれ以外のことをしますか? – Prakash
LD_ASSUME_KERNELを削除し、コードを再コンパイルし、動作しないバグを修正します。 –
実際にはAMD64アーキテクチャを使用しているので、その形式でコードをコンパイルすることをお勧めします。 –