FreeBSDでビルドしたところ、 gcc (4.2.1 20070831 patched [FreeBSD])に -Wno-empty-body など知らんと怒られてしまいました。 echo '1,/^$/d' > hmachine.sed sed -n -e 's/machine.h/hmachine.h/g' -e '1,/^$/p' machine.h > hmachine.h sed -f hmachine.sed machine.h >> hmachine.h cp config.hin config.h cc -DPREFIX='"'/usr/local'"' -DCONFDIR='"'/etc'"' -DDICTSRC='"''''"' -DFD=3 -DCCCOMMAND='"'cc'"' -DHOSTCCCOMMAND='"'cc'"' -DCFLAGS='"''''"' -DHOSTCFLAGS='"''''"' -DCPPFLAGS='"''''"' -DHOSTCPPFLAGS='"''''"' -DLDFLAGS='"''''"' -DHOSTLDFLAGS='"''''"' -o mkmfsed mkmfsed.c ./mkmfsed > mkmf.sed sed -f mkmf.sed Makefile.in > Makefile.tmp || (rm -f Makefile.tmp; exit 1) make -f Makefile.tmp cc -DFREEBSD=1 -O -Wno-attributes -Wno-empty-body -c -o mkkanji.o mkkanji.c cc1: error: unrecognized command line option "-Wno-empty-body" *** [mkkanji.o] Error code 1 gcc のリリースノートや ChangeLog を見ても警告オプションの empty-body が どのリリースから追加されたものなのかさっぱり分からない(commit の日付上 は 2006-12-16)ので、GCCのリリース版のtarballを順次ダウンロードして調べ たところ、初出は4.3.0でした。 --- mkmfsed.c.orig 2012-06-30 00:00:00.000000000 +0900 +++ mkmfsed.c 2012-07-02 16:22:32.972457023 +0900 @@ -193,7 +193,7 @@ # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) strappend(buf3, "-Wno-attributes"); # endif -# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) strappend(buf3, "-Wno-empty-body"); # endif #endif /* __GNUC__ && __GNUC_MINOR__ */ OS Xの gcc-4.2 ではサポートされていますが、これは独自パッチのようです。 http://opensource.apple.com/source/gcc/gcc-5666.3/gcc/c.opt より: ; APPLE LOCAL begin mainline Wempty-body C ObjC C++ ObjC++ Var(warn_empty_body) Init(-1) Warning Warn about an empty body in an if or else statement ; APPLE LOCAL end mainline -- Akinori MUSHA / http://akinori.org/
Attachment:
pgp8D3RJa59sH.pgp
Description: PGP signature