AIXでruby 1.8をつかってruby 1.9をコンパイルしようとすると失敗する
% make ruby "../trunk/tool/transcode-tblgen.rb" -vo newline.c ../trunk/enc/trans/newline.trans ../trunk/tool/transcode-tblgen.rb:348: too big quantifier in {,}: /\A([0-9a-f][0-9a-f]){4,259}\z/ make: *** [newline.c] Error 1
newline.cをほかのプラットフォームから持ってくればとりあえずしのげるので無視していました。調べてみるとAIXのすでにもっている定数が邪魔をしていたみたいです。で、ぜんぜんうまい逃げが見つからないので、
Index: regex.h =================================================================== --- regex.h (revision 26219) +++ regex.h (working copy) @@ -54,6 +54,9 @@ #define RE_REG_MAX ((1<<BYTEWIDTH)-1) /* Maximum number of duplicates an interval can allow. */ +#ifdef _AIX +#undef RE_DUP_MAX +#endif #ifndef RE_DUP_MAX #define RE_DUP_MAX ((1 << 15) - 1) #endif
でしのぐのですが、もうちょっとまじめに調べてから入れていいか聞くことにします。<追記> どうやらリリース時にはnewline.cはtarballにふくまれるらしい。とするとこれに引っかかるのは多分この世で私だけな気がする。<追記2> linuxのヘッダを見たら、sizeof(int)==2だと、(1 << 15)がオーバフローするので0x7fffって書いてありました。