Re: Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed. を消すに は?
kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> > > 普通は、thread local な領域にerrnoに相当するものを作る
> > > と思う。
> > だから、その通りになったのでは?
>
> binary 互換をやぶるような実装になったのは、納得できないです〜
binary 互換は不可能では。API変えちゃったらソース互換でさえなくなります
よね。
# つーか、もともとANSI/ISO Cでは「errnoはマクロかもしれんから、errno.h
# を必ずインクルードしろよ」となってるわけで。
# glibc開発者がどっかに書いてましたが、「バグのあるアプリを永久にサポー
# トし続けるなんてできない」ということでしょう。
> つうか検出できるんだったら、対応しろよ...
グローバル変数を参照する機械語でthread specific dataを参照するようにす
るのは、ライブラリレベルじゃ無理じゃないですかねー。
> で、結局、どうしようかな.... glibc を元に戻せっていう意見が
> 結構あって、ターゲットプログラムだけ、そうするっていう手も
> あるんですが...
んー、まあそれが安全かもしれませんね。他の手段だと、ライブラリは「本物」
のerrnoを参照してるのに、アプリ側は全く別のものを読み書きしちゃってる
わけだから。
前田敦司
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735