From f0b194141dc6ae051e87ce836ce030e422500041 Mon Sep 17 00:00:00 2001 From: suzuki toshiya Date: Wed, 21 Mar 2012 15:42:14 +0900 Subject: [PATCH] [configure] fix Savannah bug #35644. * builds/unix/configure.raw: Check `-ansi' flag works even if gcc is used. Bionic libc headers for Android lose the consistency when they are parsed with __STDC_VERSION__ older than 199901L or __STRICT_ANSI__. --- ChangeLog | 9 ++++++ builds/unix/configure.raw | 64 +++++++++++++++++++++++++-------------- 2 files changed, 51 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3cfb2f814..0e2996bde 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-03-20 suzuki toshiya + + [configure] fix Savannah bug #35644. + + * builds/unix/configure.raw: Check `-ansi' flag works even if gcc + is used. Bionic libc headers for Android lose the consistency + when they are parsed with __STDC_VERSION__ older than 199901L or + __STRICT_ANSI__. + 2012-03-20 Werner Lemberg [bdf] Improvement to Savannah bug #35656. diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw index 111dbabc9..0d19240de 100644 --- a/builds/unix/configure.raw +++ b/builds/unix/configure.raw @@ -67,28 +67,6 @@ AC_SUBST(EXEEXT_BUILD) -# get compiler flags right - -if test "x$GCC" = xyes; then - XX_CFLAGS="-Wall" - XX_ANSIFLAGS="-pedantic -ansi" -else - case "$host" in - *-dec-osf*) - CFLAGS= - XX_CFLAGS="-std1 -g3" - XX_ANSIFLAGS= - ;; - *) - XX_CFLAGS= - XX_ANSIFLAGS= - ;; - esac -fi -AC_SUBST([XX_CFLAGS]) -AC_SUBST([XX_ANSIFLAGS]) - - # auxiliary programs AC_CHECK_PROG([RMF], [rm], [rm -f]) @@ -222,6 +200,48 @@ AC_SUBST([FTSYS_SRC]) AC_CHECK_FUNCS([memcpy memmove]) +# get compiler flags right +# we try to make the compiler work for C89-strict source. +# even if C compiler is GCC and C89 flags are available, +# some system headers (e.g. Android Bionic libc) is broken +# in C89 mode. we have to check the compilation finishes +# successfully. +# +if test "x$GCC" = xyes; then + XX_CFLAGS="-Wall" + XX_ANSIFLAGS="" + for a in -pedantic -ansi + do + AC_MSG_CHECKING([gcc compiler flag ${a} to assure ANSI C works correctly]) + orig_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${XX_ANSIFLAGS} ${a}" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([#include ],[{puts("");return 0;}]) + ],[ + AC_MSG_RESULT([ok, add it to XX_ANSIFLAGS]) + XX_ANSIFLAGS="${XX_ANSIFLAGS} ${a}" + ],[ + AC_MSG_RESULT([no]) + ]) + CFLAGS="${orig_CFLAGS}" + done +else + case "$host" in + *-dec-osf*) + CFLAGS= + XX_CFLAGS="-std1 -g3" + XX_ANSIFLAGS= + ;; + *) + XX_CFLAGS= + XX_ANSIFLAGS= + ;; + esac +fi +AC_SUBST([XX_CFLAGS]) +AC_SUBST([XX_ANSIFLAGS]) + + # check for system zlib # don't quote AS_HELP_STRING!