[[diary/Kojima]]

・Glibc-2.3.4

glibc-2.3.4 を --enable-add-ons=linuxthreads でコンパイルしようとすると

 pthread.c:550: undefined reference to `_res'
 libpthread_pic.a(pthread.os)(.text+0xcea): In function `__pthread_reset_main_thread':
 pthread.c:1146: undefined reference to `_errno'
 libpthread_pic.a(pthread.os)(.text+0xcf6):/home/kojima/Glibc2/glibc-2.3.4/linuxthreads/pthread.c:1147: 
   undefined reference to `_h_errno'
 ...

などと言うエラーになる模様.Web 上で調べてみると i686 以上でしか使えな
い TLS を要求しているので --without-TLS すれば通るかも,という情報は見
つけたものの,このあたりの設定をいくつか試してもダメな模様.

多分,エラーの原因は,リンクしようとしている(新しく作った) libc.so では

 kojima@athlon[~/Glibc2/libc-bin2]% nm libc.so | grep ' _res'
 001003a0 B _res@GLIBC_2.0
 00101240 B _res_hconf
 000b4708 t _res_hconf_init
 000b4760 t _res_hconf_reorder_addrs

となっていて _res に @GLIBC_2.0 みたいなバージョン修飾が付いていることだと
思うのだけど,このあたりは glibc2 のかなり奥の方の問題だから,どうすれ
ばいいのかは分からないなぁ.ドキュメントを見ても 2.3.4 のスレッド機能
は NPTL がデフォルトで linuxthreads は過去との互換性のために残してある
ような書き方なので,待ってれば直るものでも無さげだし.

glibc-2.3.3 までは linuxthreads でもコンパイルできたので,Plamo-4.0.2 
ではこっちを使うことにして,2.3.4 は Plamo-4.1 以降で 2.6 カーネル +
NPTL で使うようにするかなぁ..
-自宅のi586マシンでPlamo-unstable+kernel2.6.11rc4+gcc2.4.3+glibc2.3.4NPTLなんとかうごいたようです。 -- [[名倉]] &new{2005-02-18 (金) 16:47:55};
---without-__thread で一応コンパイルできます。カーネル 2.6 に上げてるので NPTL 試してみたいのですが、djbware が軒並み死亡するのがつらい。NPTL 採用のディストリビューションみたいに LD_ASSUME_KERNEL で切り替えられるようにビルドできるとうれしいのですが、SRPM 覗いてもよくわからんです。(^^; -- [[にっき]] &new{2005-02-20 (日) 10:16:56};
-もし興味おありのようでしたらMLに報告しますが?ホームページがないISP使っているのでへなちょこパッケージおく場所ありません残念。 -- [[名倉]] &new{2005-02-20 (日) 16:08:19};
-おお、お願いできるとうれしいです。私のコメントなんで名倉さんのと位置が違うのかと思ったら行頭の -- のせいなんですね。(^^; -- [[にっき]] &new{2005-02-20 (日) 18:00:30};
-linuxthreds でビルドした glibc を普通にインストールして、NPTL でビルドしたときの /lib 以下を /lib/tls に放り込んだら動いてしまいました。こんなんでいいのだろうか。(^^; -- [[にっき]] &new{2005-02-24 (木) 06:01:49};
-たちあがってしまえばこちらのもの、おめでとうございます。getconfコマンドにNPTL***と表示されればとりあえずOKだと思います -- [[名倉]] &new{2005-02-24 (木) 14:19:08};
-posixtestsuiteだけでは不安になってきましたdjbware試しにコンパイルしてみたいのですがdjbdnsでもいいですか? -- [[名倉]] &new{2005-02-24 (木) 18:25:36};
-glibc-2.3.x 上でリコンパイルすれば NPTL でも普通に動くと思いますよ(パッチが必要になると思いますが)。うちはまだリコンパイルしてないので LD_ASSUME_KERNEL=2.4 で逃げてます。 -- [[にっき]] &new{2005-02-25 (金) 08:33:08};
-実は調子にのってglibc-20050221をしこんでしまいましたglibc-2.3.90ってことのようです。 -- [[名倉]] &new{2005-02-25 (金) 09:39:09};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS