[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



こんにちは.

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

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

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


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

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

--
from もなか