(toppers-users 2539) Re: コンフィギュレータのアライメント

Masaki Muranaka monamour @ monaka.org
2006年 9月 15日 (金) 17:20:16 JST


こんにちは.

うーん.議論が噛み合っていませんねぇ.
SIGBUSが飛ばないことと,ユーザが指定した通りにアラインが
取れることは必ずしも等価ではありませんよ.

既に少し触れましたが,128ビット境界のアラインを要求する
ABIがあるtripletで,__int128_t の配列の先頭アドレスが
128ビット境界にならない,というgccの実装があります.
SIGBUSは飛びませんが,厳密にはABI違反です.
しかし,これを処理系の中で回避する方法はたぶんありません.

…っていうような辛く切ない話は,カーネル実装でもしないと
直面しませんから,噛み合なくても仕方ないかもしれませんが….;-(


On 2006/09/15, at 15:26, komori @ rasteme.co.jp wrote:
> 完全にread onlyのものです。
> 処理系がターゲットCPUに対して、通常のtype指定で
> バスエラーが発生しないとしたら
> バッファーをstructなりunionでとっておき、
> そのstructなりunionの先頭にアライメントを指定しよ 
> うとするtypeを
> 定義しておけば、バッファーのアライメントは処理系に依存しないで
> 指定したtypeに合うことが保証されると思います。
> 従って。少なくともバスエラーが発生する可能性は有りません。

本MLの趣旨に合わないスレッドな上に,さらに余談ですが,
稀に構造体メンバを入れ替える(非標準な)オプションを持つ
処理系があると聞いています.
保守的な立場を取るのであれば,structは怖くて使えません.

--
from もなか