fix large files support for HP-UX v11: we need _LARGEFILE_SOURCE there; OTOH don't use _LARGE_FILES everywhere as it's only needed under AIX

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-11-12 15:31:44 +00:00
parent 9b3eb4aa61
commit e61c1fef6e

View File

@@ -1685,57 +1685,70 @@ fi
fi dnl wxUSE_VARARG_MACROS == yes fi dnl wxUSE_VARARG_MACROS == yes
dnl check for large file support dnl check for large file support
LARGEFILE_CPPFLAGS=
AC_SYS_LARGEFILE AC_SYS_LARGEFILE
if test "$ac_cv_sys_file_offset_bits" = "64"; then
LARGEFILE_CPPFLAGS="-D_FILE_OFFSET_BITS=64"
elif test "$ac_cv_sys_large_files" = 1; then
LARGEFILE_CPPFLAGS="-D_LARGE_FILES"
fi
dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
dnl line because otherwise the system headers risk being included before dnl line because otherwise the system headers risk being included before
dnl wx/defs.h which defines these constants leading to inconsistent dnl wx/defs.h which defines these constants leading to inconsistent
dnl sizeof(off_t) in different source files of the same program and linking dnl sizeof(off_t) in different source files of the same program and linking
dnl problems dnl problems
if test "x$wx_largefile" = "xyes"; then if test -n "$LARGEFILE_CPPFLAGS"; then
if test "x$ac_cv_sys_file_offset_bits" = "x64"; then WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $LARGEFILE_CPPFLAGS"
WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
dnl We get "Large Files (ILP32) not supported in strict ANSI mode." dnl We get "Large Files (ILP32) not supported in strict ANSI mode."
dnl #error from HP standard headers unless __STDC_EXT__ is defined. dnl #error from HP standard headers unless __STDC_EXT__ is defined.
dnl The compiler should define it automatically, but some old g++ dnl The compiler should define it automatically, but some old g++
dnl versions don't define it, so test and add it if necessary. AFAIK dnl versions don't define it, so test and add it if necessary. AFAIK
dnl the problem only affects the C++ compiler so it is added to dnl the problem only affects the C++ compiler so it is added to
dnl CXXFLAGS only. dnl CXXFLAGS only.
if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then
AC_CACHE_CHECK( AC_CACHE_CHECK(
[if -D__STDC_EXT__ is required], [if -D__STDC_EXT__ is required],
wx_cv_STDC_EXT_required, wx_cv_STDC_EXT_required,
[ [
AC_LANG_PUSH(C++) AC_LANG_PUSH(C++)
AC_TRY_COMPILE( AC_TRY_COMPILE(
[], [],
[ [
#ifndef __STDC_EXT__ #ifndef __STDC_EXT__
choke me choke me
#endif #endif
], ],
wx_cv_STDC_EXT_required=no, wx_cv_STDC_EXT_required=no,
wx_cv_STDC_EXT_required=yes wx_cv_STDC_EXT_required=yes
) )
AC_LANG_POP() AC_LANG_POP()
] ]
) )
if test "x$wx_cv_STDC_EXT_required" = "xyes"; then if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__" WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__"
fi
fi fi
else
WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGE_FILES"
fi
dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
AC_FUNC_FSEEKO
if test "$ac_cv_sys_largefile_source" != no; then
WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
fi fi
fi fi
dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
dnl
dnl it may be affected by large file flags (this happens under HP-UX 11 for
dnl example) so set them before using it and also use C++ to ensure that we get
dnl errors, not warnings, about the missing functions
AC_LANG_PUSH(C++)
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $LARGEFILE_CPPFLAGS"
AC_FUNC_FSEEKO
CPPFLAGS="$old_CPPFLAGS"
AC_LANG_POP()
if test "$ac_cv_sys_largefile_source" != no; then
WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
fi
dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling) dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
WX_C_BIGENDIAN WX_C_BIGENDIAN