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

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



 しらいです。

In Message-Id <20120705155334.4109D4805F4@yuka.unixusers.net>
        Takashi SHIRAI <shirai@unixusers.net>writes:
>  しらいです。

>  なので、gcc-4.3 以上、もしくは defined (__clang__) ならば
> -Wno-empty-body を指定することにします。

 patch を作ってみたので確認して下さい。#if の条件節が複雑で
判りにくくなるので macro 定義してみました。
 __clang__ に関しては、割とありふれた名称なので clang 以外
でもどこかで使われているかも知れません。なので __GNUC__ の定
義との連言にしてあります。

---- Cut Here ----
diff -ur ../old/FD-3.00l/Makefile ./Makefile
--- ../old/FD-3.00l/Makefile	Sat Jun 30 00:00:00 2012
+++ ./Makefile	Thu Jul  5 23:10:22 2012
@@ -58,7 +58,7 @@
 	__FreeBSD__ __BOW__ __NetBSD__ NetBSD1_0 __NetBSD_Version__ \
 	__bsdi__ __386BSD__ __BSD_NET2 __OpenBSD__ \
 	__APPLE__ __MACH__ __minix _VCS_REVISION __ANDROID__ __BIONIC__ mips \
-	__GNUC__ __GNUC_MINOR__
+	__GNUC__ __GNUC_MINOR__ __clang__
 HPREFIX	= H_
 
 all: Makefile.tmp
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	Sat Jul  7 01:31:26 2012
@@ -44,6 +44,10 @@
 #define	DICTSRC			""
 #endif
 
+#define	ver_newer(a, i, j, n)	((a) > (j) || ((a) == (j) && (i) >= (n)))
+#define	gcc_newer(ma, mi)	ver_newer(__GNUC__, __GNUC_MINOR__, ma, mi)
+#define	h_gcc_newer(ma, mi)	ver_newer(H___GNUC__, H___GNUC_MINOR__, ma, mi)
+
 static VOID NEAR strappend __P_((char *, CONST char *));
 int main __P_((int, char *CONST []));
 
@@ -190,10 +194,10 @@
 	strappend(buf1, EXTENDCCOPT);
 	strappend(buf1, "$(DEBUG)");
 #if	defined (__GNUC__) && defined (__GNUC_MINOR__)
-# if	__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
+# if	gcc_newer(4, 1)
 	strappend(buf3, "-Wno-attributes");
 # endif
-# if	__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+# if	gcc_newer(4, 3) || defined (__clang__)
 	strappend(buf3, "-Wno-empty-body");
 # endif
 #endif	/* __GNUC__ && __GNUC_MINOR__ */
@@ -204,10 +208,10 @@
 		printf("s:__HOSTCPPFLAGS__:%s:\n", HOSTCPPFLAGS);
 		printf("s:__HOSTLDFLAGS__:%s:\n", HOSTLDFLAGS);
 # if	defined (H___GNUC__) && defined (H___GNUC_MINOR__)
-#  if	H___GNUC__ > 4 || (H___GNUC__ == 4 && H___GNUC_MINOR__ >= 1)
+#  if	h_gcc_newer(4, 1)
 		strappend(buf1, "-Wno-attributes");
 #  endif
-#  if	H___GNUC__ > 4 || (H___GNUC__ == 4 && H___GNUC_MINOR__ >= 2)
+#  if	h_gcc_newer(4, 3) || defined (H___clang__)
 		strappend(buf1, "-Wno-empty-body");
 #  endif
 # endif	/* H___GNUC__ && H___GNUC_MINOR__ */
---- Cut Here ----

                                               しらい たかし