On Dec 6, 2007 4:30 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > Umm. Why not just make the test be whether the following compiles cleanly? > > #include <iconv.h> > > extern size_t iconv(iconv_t cd, > char **inbuf, size_t *inbytesleft, > char **outbuf, size_t *outbytesleft); > > because if the compiler has seen a "const char **inbuf", then it should > error out with a "conflicting types for 'iconv'" style message.. Yeah, this is what I did: diff --git a/configure.ac b/configure.ac index 5f8a15b..675d3e0 100644 --- a/configure.ac +++ b/configure.ac @@ -182,6 +182,29 @@ AC_SUBST(NEEDS_LIBICONV) AC_SUBST(NO_ICONV) test -n "$NEEDS_LIBICONV" && LIBS="$LIBS -liconv" # +# Define OLD_ICONV if the iconv function prototype uses const** (Darwin and +# some FreeBSD installations). +AC_DEFUN([OLDICONVTEST_SRC], [ +#include <iconv.h> + +int main(void) +{ + char* value = "test"; + + (void) iconv (NULL, &value, NULL, NULL, NULL); +} +]) +AC_MSG_CHECKING([for old iconv]) +old_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +AC_COMPILE_IFELSE(OLDICONVTEST_SRC, + [AC_MSG_RESULT([no]) + OLD_ICONV=], + [AC_MSG_RESULT([yes]) + OLD_ICONV=UnfortunatelyYes]) +CFLAGS="$old_CFLAGS" +AC_SUBST(OLD_ICONV) +# # Define NO_DEFLATE_BOUND if deflateBound is missing from zlib. AC_DEFUN([ZLIBTEST_SRC], [ #include <zlib.h> The problem is that AC_COMPILE_IFELSE doesn't barf on warnings, so I had to put in the CFLAGS hack to do -Werror (this is what Jakub did also, I think). So if this isn't rude to use -Werror (which is probably gcc-specific in one or more ways), then fine. If it is rude to use -Werror, then yeah, there needs to be some check for the warning, which I confess in my five minutes of learning autoconf I don't understand well enough to say if it's possible. Blake -- Blake Ramsdell | http://www.blakeramsdell.com - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html