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

[FDclone-users:00985] -Wno-empty-body not recognized by FreeBSD gcc



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