・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 で使うようにするかなぁ..