diff --git a/configure b/configure index 2288d3eab5..62b8478861 100755 --- a/configure +++ b/configure @@ -29407,12 +29407,66 @@ else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + #include + using namespace std; + +int +main () +{ + + char *buf; + va_list ap; + vsnprintf(buf, 10u, "%s", ap); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + wx_cv_func_vsnprintf_decl=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + wx_cv_func_vsnprintf_decl=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi echo "$as_me:$LINENO: result: $wx_cv_func_vsnprintf_decl" >&5 echo "${ECHO_T}$wx_cv_func_vsnprintf_decl" >&6 diff --git a/configure.in b/configure.in index fc4a6193a7..3e7247716c 100644 --- a/configure.in +++ b/configure.in @@ -3688,7 +3688,27 @@ if test "$ac_cv_func_vsnprintf" = "yes"; then vsnprintf(buf, 10u, "%s", ap); ], wx_cv_func_vsnprintf_decl=yes, - wx_cv_func_vsnprintf_decl=no + [ + dnl Metrowerks does provide a vsnprintf declaration + dnl but in C++ mode it's always in std namespace. + dnl FIXME: Do we have any UNIX C++ compilers that would + dnl fail this test if using namespace std; was + dnl simply always included? + AC_TRY_COMPILE( + [ + #include + #include + using namespace std; + ], + [ + char *buf; + va_list ap; + vsnprintf(buf, 10u, "%s", ap); + ], + wx_cv_func_vsnprintf_decl=yes, + wx_cv_func_vsnprintf_decl=no + ) + ] ) ] )