[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00990] Re: -Wno-empty-body not recognized by FreeBSD gcc
- Subject: [FDclone-users:00990] Re: -Wno-empty-body not recognized by FreeBSD gcc
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Sat, 07 Jul 2012 06:09:10 +0900
しらいです。
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 ----
しらい たかし