intとlongのサイズ
x86Solaris環境でApacheのmakeをしているとエラー。なにやらintとlongのサイズが同じでswitchのcase文が同一条件になっているみたい。
case; sizeof(int) (中略) case: sizeof(long)
実際には
typedef int apr_int32_t ; typedef int apr_int64_t ; sizeof(apr_int32_t)
ってかかれていましたが。32bitモードでコンパイルすると、両方とも4になるんですね。64bitモードでコンパイルするとintは4,longは8になります。
へぇ。ということで
export CFLAGS='-m64' export LDFLAGS='-64'
と指定してコンパイル、リンク。
このSolaris環境32bitと64bitの両モードが混在してしまって、ちょっとややこしいことになっちまっています。