[FreeBSD] 8.2-PRERELEASE にしてから妙なエラー
4 日前に OS を更新しました。 gcc が machine/endian.h に構文エラーがあるとのメッセージを出すようになりました。 ちなみにファイルの元は /usr/src/sys/i386/include/endian.h です。
/usr/include/machine/endian.h:107: syntax error, unexpected '{' in ' return (__extension__ ({ register __uint32_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }));' at '{' /usr/include/machine/endian.h:107: syntax error, unexpected ';' in ' return (__extension__ ({ register __uint32_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }));' at ';'
どうやらこのマクロの書き方が気に入らなかったようです。
#define __byte_swap_int_var(x) \ __extension__ ({ register __uint32_t __X = (x); \ __asm ("bswap %0" : "+r" (__X)); \ __X; })
しかしどこをどう直せばいいのかぜんぜんわかりません。 うまいことにこのエラーではビルド作業が停止しないので、 そのまま放置することにしました。