libthread とリンクする場合には、-lthread ではなく -mt オプションを使用してライブラリのリンク順序が正しくなるようにしてください。
POSIX スレッドを使用する場合は、-mt オプションと -lpthread オプションを使ってリンクする必要があります。-mt オプションが必要な理由は、libCrun (標準モード) と libC (互換モード) がマルチスレッド対応のアプリケーションに対して libthread を必要とするためです。
コンパイルとリンクを別々に実行する場合で、コンパイルで -mt を使用した場合は、次の例に示すようにリンクでも -mt を使用してください。 そうしないと、予期しない結果が発生する可能性があります。
example% CC -c -mt myprog.cc example% CC -mt myprog.o |
並列の Fortran オブジェクトを C++ オブジェクトと混合している場合は、リンク行に -mt オプションを指定する必要があります。
C99 サポートは互換モード (-compat=4) で使用できません。
-xnolib、「10.5 メンバー変数のキャッシュ」、『マルチスレッドのプログラミング』、『リンカーとライブラリ』