aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2014-11-29 10:29:29 +0000
committerSimon Tatham <anakin@pobox.com>2014-11-29 10:29:29 +0000
commit2fe0667f519a825e6c028b4365312a144b343d62 (patch)
treefa96ff2e71c9c27e4122b6d0c6f86f7a18d6872c
parent69ab4b2205cd41188c9aa5f5878f876c739c4800 (diff)
downloadpuzzles-2fe0667f519a825e6c028b4365312a144b343d62.zip
puzzles-2fe0667f519a825e6c028b4365312a144b343d62.tar.gz
puzzles-2fe0667f519a825e6c028b4365312a144b343d62.tar.bz2
puzzles-2fe0667f519a825e6c028b4365312a144b343d62.tar.xz
Use the compile flag -std=c89 in place of -ansi.
This is probably slightly nicer anyway, in that it specifies exactly _which_ ANSI standard I'm talking about; but the main reason for making the change is that it means I can now build the Unix puzzles with clang. It's not that clang doesn't _support_ -ansi; it accepts it just fine on any command line that's actually doing some compiling. But on a link-only command line, i.e. with only object files as input and no sources, clang emits the annoying warning "argument unused during compilation: '-ansi", and if you have -Werror as well then that warning becomes an error. You'd think there would be some makefile flags variable I could nonetheless put -ansi in, but apparently not - automake passes CFLAGS to both compiles and to link-only commands. And you'd also think that surely I should be able to work around this by having my configure.ac do a test link and stop trying to use that option if it didn't work - especially since configure.ac already tests a bunch of compile options to make sure they don't object to system header files, after the time I found that a GTK header was incompatible with my usual -Werror. But in fact, if I change that AC_COMPILE_IFELSE to an AC_LINK_IFELSE, autoconf generates a single compile-and-link command line, and hence does not expose the problem using -ansi on link-only command lines. Fortunately, -std=c89 does not generate this same warning from clang. I don't know why not - surely the two options are more or less equivalent - but it makes my build work again for the moment.
-rw-r--r--configure.ac2
1 files changed, 1 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 49dc5c6..c5bb6f9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ AM_PATH_GTK_2_0([2.0.0])
if test "x$GCC" = "xyes"; then
AC_MSG_CHECKING([for usable gcc warning flags])
gccwarningflags=
- for flag in -Wall -Werror -ansi -pedantic; do
+ for flag in -Wall -Werror -std=c89 -pedantic; do
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS$gccwarningflags $flag $GTK_CFLAGS"