by
Anonymous Coward
on 2006年03月07日 17時26分
(#896316)
ごちゃごちゃと意味のない推論するくらいなら,さっさと原文を読めばいいのに.
* The LinuxThreads add-on, providing pthreads on Linux 2.4 kernels, is no
longer supported. The new NPTL implementation requires Linux 2.6 kernels.
For a libc and libpthread that works well on Linux 2.4 kernels, we
recommend using the stable 2.3 branch.
変った物 (スコア:5, 参考になる)
*overflowを探知する関数が増えた。
*もっと多くのエンコーディングに iconvが対応した。
*検査ようのライブラリ?のダイナミックロードができる。 LD_AUDIT?
*Threads が NPTLを使う。
*open_wmemstream が増えた。open_memstreamの wchar_t 版。
*ppollが増えた。pollの改善版, pselect に似ているらしい。
*インターフェースが変った。
fdopendir, openat, fstatat, fchmodat, fchownat,
futimesat, faccessat, mkdirat, mkfifoat, mknodat,
renameat, unlinkat, linkat, symlinkat, readlinkat.
*Linux のシステムコールが増えた。: unshare,
inotify_init, inotify_add_watch, inotify_rm_watch.
* The euidaccess function is now also known by the alias eaccess,
for compatibility with some other systems.
よくわからん。
*タイムゾーンのデータが 2006b に。
Re:変った物 (スコア:5, 参考になる)
LD_AUDITを使ったダイナミックロードの監査ライブラリが使えるようになったよ.
Ulrich Drepperが作ってくれたんだ.
Linux2.4カーネルでptheradsを提供していたLinuxThreadsはもうサポートしないよ.
Linux2.6カーネルではNPTLを実装しないといけないんだ.
Linux2.4で動くlibcとlibpthreadのためには,stable 2.3ブランチを使ってくださいな.
Re:変った物 (スコア:1)
NPTLを実装するには、Linux2.6カーネルが必要なんだよぉ.
でした。
ごめんなさい。
Re:変った物 (スコア:0)
Re:変った物 (スコア:2, 参考になる)
LD_PRELOADを使うとプログラムが使う関数を置換できるので、やろうと思えば何でもできますが、LD_PRELOADでロードされるライブラリ側の実装は、置換しようとしているオリジナル関数の挙動を完全に把握していないとできません。また、非常に多くの関数を置換しようとすると実装が非常に大変です。
一方(Solarisで)LD_AUDITを使う場合は、プログラムがどんなライブラリをロードするか、どんな関数を呼ぶかなどを全く知らなくてもOKです。(逆にそれを把握するために、ロギングするだけのauditライブラリを作ることもできます。しかも簡単な実装なら数行で済みます。) 無論関数の戻り値や引数を変更するなら、オリジナルの挙動を知っておく必要がありますが。
Re:変った物 (スコア:1, 興味深い)
これ、でかいぞ。
Re:変った物 (スコア:0)
Threadsって何のことでしょう?
Re:変った物 (スコア:0)
Re:変った物 (スコア:0)
LinuxThreadsが無くなったからNPTLを使えっていうのなら意味分かるけど。
Re:変った物 (スコア:1, 参考になる)
Re:変った物 (スコア:3, 参考になる)
Re:変った物 (スコア:1)
…libpthreadに見せかけるWrapper作らないとまずい事が多発しそう(;´Д`)
# 逆に旧いLinuxThreadからNTPLをエミュレーションする
# ライブラリがあると助かる人がたくさんいるかも
# …ディストリビューションにLinux 2.6系から先への移行を要求しているので…
Re:変った物 (スコア:1, 参考になる)
逆だってば。
Re:変った物 (スコア:3, 参考になる)
linuxthreads の変な癖に合わせたコードを書いていない限り、pthread API を使うプログラムならソースからリコンパイルすれば普通に NTPL 対応になる筈です。
Re:変った物 (スコア:2, 参考になる)
automakeでなくても、
grep LinuxThread /usr/include/pthread.h
みたいなことをconfigure中でチェックしてるのがあったような。(mysqlだったかなぁ)
おかげでnptl使っているとそのままじゃコンパイルできないものがありました。
> # 逆に旧いLinuxThreadからNTPLをエミュレーションする
> # ライブラリがあると助かる人がたくさんいるかも
エミュレーションしなくても、/usr/include/pthread.hのコメント中に、「LinuxThread」 という文字を入れるだけでも何とかなったりして。(linuxthreadとnptlはinterchangeableなんで)
Re:変った物 (スコア:1, 参考になる)
新しい NPTL の実装には Linux 2.6 カーネルが必要。
Linux 2.4 カーネルでちゃんと動く libc と libpthread には、
stable 2.3 ブランチ推奨。
Re:変った物 (スコア:0)
蛇足だけど、2.6 で LinuxThread は使えた筈。
さらに余談としては RedHat9 当たりでは 2.4 にパッチ当てて NPTL 使う。
Re:変った物 (スコア:0)
叩き台って事で許してちょ。
Re:変った物 (スコア:1)
libpthredが内部で使うのがLinuxThreadかNPTLかって事なんだけど……
glibc-2.3.xの場合,変な事してなければ,LinuxThreadを使っていたバイナリもNPTLでそのまま動くし。
Re:変った物 (スコア:1, 参考になる)
> for compatibility with some other systems.
>よくわからん。
他システムとの互換性のため、euidaccess関数は、
accessというエイリアスでも参照可能となりました
という感じでしょうか...
Re:変った物 (スコア:0)