HP-UX General
1748261 メンバー
3561 オンライン
108760 解決策
新規ポスト

セマフォを使ったらTLSエラー発生?

 
Ma_Ta
時折のアドバイザー

セマフォを使ったらTLSエラー発生?

こんにちわ。

セマフォを使ったマルチスレッドプログラムを作っていますが、出来上がったプログラムを実行すると、実行直後に以下のエラーが出てきました。

$ /usr/lib/dld.sl: Thread Local Storage mismatch symbol for: sem_destroy

/usr/lib/dld.sl: No such file or directory

実はプログラム内では独自にTLS変数を

宣言している箇所もあったりするので

それが関係しているのかも、と思いもするのですが、

単に

__thread 構造体 変数名

といった程度のものなので、正直関係あるのかどうか分かりません。

そうではなく、dld.slがシンボルを解決するためのリンカオプションでも必要なのかとも思うのですが、どなたかこのあたりのことをご存知でしたら、ご教授お願い致します。

プラットフォームはHP-11i です。

よろしくお願いします。

3件の返信3
Ma_Ta
時折のアドバイザー

セマフォを使ったらTLSエラー発生?

解決してないのですが、

ためしにアプリケーション内部で定義している、

ユーザー定義のTLS変数を外してみると

この現象は出てきませんでした。

ということは、TLSを使用するやり方に何か問題が

あったということでしょうか。

調べてはいるのですが、なかなか分からないことも多くて見つかりません。

どなたかご存知の方ご教授ください。

よろしくお願いします。

oops
貴重なコントリビューター

セマフォを使ったらTLSエラー発生?

セマフォは関係ないと思います。

考えられるとすれば、動的にロードするライブラリで TLS の宣言をしているというような、使用方法に問題があるか、そうでないのであれば、TLS をサポートしているのはコンパイラになるので、コンパイラに不具合があって、作成されたオブジェクトコードに問題があるかのどちらかではないかと思います。

リンカ(ld)やダイナミックローダ(dld.sl)の問題ではないと思いますが…

最新のコンパイラにアップデートされて再コンパイルというのは無理ですか?または不具合情報を ITRC で探して見るとか。
Ma_Ta
時折のアドバイザー

セマフォを使ったらTLSエラー発生?

ご回答のおかげで、確認がとれました。

TLSを使うために必要なパッチが当たっていないようでした。

パッチを当ててもらうように申請しました。