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

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



 しらいです。

In Message-Id <867gumh6fe.knu@iDaemons.org>
        "Akinori MUSHA" <knu@iDaemons.org>さんwrites:
> FreeBSDでビルドしたところ、 gcc (4.2.1 20070831 patched [FreeBSD])に
> -Wno-empty-body など知らんと怒られてしまいました。

 ほう。gcc-4.2 は未対応でしたか。


> gcc のリリースノートや ChangeLog を見ても警告オプションの empty-body が
> どのリリースから追加されたものなのかさっぱり分からない(commit の日付上
> は 2006-12-16)ので、GCCのリリース版のtarballを順次ダウンロードして調べ
> たところ、初出は4.3.0でした。

 私も調べたのですが、-Wall 指定時に出る empty body warning
自体は 4.2 からのようなので、-Wno-empty-body も 4.2 からだと
思ってました。4.2 では「empty-body」じゃないのかな?
 名称が「empty-body」じゃないとして、では -Wall で全指定し
た際に source の /*EMPTY*/ の箇所で warning は出ませんか?か
なりあちこちにある筈ですが。

 /*EMPTY*/ は lint(1) 用の empty body 回避策なんですが、gcc
も lint(1) の作法くらい対応してても良さそうなものなのに。最
近の gcc 開発陣はそもそも lint(1) を知らない?
 確か Linux には lint(1) 無いんでしたっけ。もう知らない方が
主流なのかしらん。


> --- 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__ */

 host cc 用の -Wno-empty-body もあるので修正箇所は二箇所に
なります。この patch でどうでしょう?

---- Cut Here ----
diff -ur ../old/FD-3.00l/mkmfsed.c ./mkmfsed.c
--- ../old/FD-3.00l/mkmfsed.c	Sat Jun 30 00:00:00 2012
+++ ./mkmfsed.c	Mon Jul  2 21:05:22 2012
@@ -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__ */
@@ -207,7 +207,7 @@
 #  if	H___GNUC__ > 4 || (H___GNUC__ == 4 && H___GNUC_MINOR__ >= 1)
 		strappend(buf1, "-Wno-attributes");
 #  endif
-#  if	H___GNUC__ > 4 || (H___GNUC__ == 4 && H___GNUC_MINOR__ >= 2)
+#  if	H___GNUC__ > 4 || (H___GNUC__ == 4 && H___GNUC_MINOR__ >= 3)
 		strappend(buf1, "-Wno-empty-body");
 #  endif
 # endif	/* H___GNUC__ && H___GNUC_MINOR__ */
---- Cut Here ----

                                               しらい たかし