Don't test for wide character functions in configure under OS X.

The tests for these functions may succeed on the system we're running under
but the functions may not be actually available on the system the application
is going to run under (if it's < 10.7).

So use our own replacements for these functions unless 10.7 was explicitly
chosen as the minimal possible version.

An alternative solution could have been to use weak linking but this is more
difficult and there is no real gain (performance would need to be measured
first).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-07-15 01:31:51 +00:00
parent 2416cd031b
commit 166988aa35
3 changed files with 36 additions and 2 deletions

16
configure vendored
View File

@@ -29860,7 +29860,20 @@ if test "$WCSLEN_FOUND" = 1; then
fi fi
for ac_func in wcsdup wcsftime strnlen wcsnlen wcscasecmp wcsncasecmp for ac_func in strnlen
do :
ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
if test "x$ac_cv_func_strnlen" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRNLEN 1
_ACEOF
fi
done
if test "$wxUSE_MAC" != 1; then
for ac_func in wcsdup wcsftime wcsnlen wcscasecmp wcsncasecmp
do : do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -29872,6 +29885,7 @@ _ACEOF
fi fi
done done
fi
if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then
CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS" CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS"

View File

@@ -4095,7 +4095,16 @@ if test "$WCSLEN_FOUND" = 1; then
AC_DEFINE(HAVE_WCSLEN) AC_DEFINE(HAVE_WCSLEN)
fi fi
AC_CHECK_FUNCS([wcsdup wcsftime strnlen wcsnlen wcscasecmp wcsncasecmp]) AC_CHECK_FUNCS(strnlen)
dnl OS X provides the wide character functions starting from 10.7 so our tests
dnl would succeed if we're configuring under 10.7 or later, yet the compiled
dnl programs would fail if ran under 10.6 or earlier. To avoid this problem we
dnl define the corresponding HAVE_XXX in wx/osx/config_xcode.h instead of
dnl testing for them here.
if test "$wxUSE_MAC" != 1; then
AC_CHECK_FUNCS([wcsdup wcsftime wcsnlen wcscasecmp wcsncasecmp])
fi
dnl On HP-UX aCC need this define to find mbstrtowcs() &c dnl On HP-UX aCC need this define to find mbstrtowcs() &c
dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict

View File

@@ -74,6 +74,17 @@
#define HAVE_VSSCANF_DECL 1 #define HAVE_VSSCANF_DECL 1
#define HAVE_USLEEP 1 #define HAVE_USLEEP 1
#define HAVE_WCSLEN 1 #define HAVE_WCSLEN 1
/* Many wchar functions are only available since 10.7 so don't use them if we
want to build the applications that would run under 10.6 and earlier. */
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
#define HAVE_WCSDUP 1
#define HAVE_WCSFTIME 1
#define HAVE_WCSNLEN 1
#define HAVE_WCSCASECMP 1
#define HAVE_WCSNCASECMP 1
#endif
#define SIZEOF_WCHAR_T 4 #define SIZEOF_WCHAR_T 4
#define SIZEOF_SHORT 2 #define SIZEOF_SHORT 2
#define SIZEOF_INT 4 #define SIZEOF_INT 4