From 65a32e834fe2f5cdf173c40a262c0e85d6fe90e5 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 12 Oct 2007 14:03:51 +0400 Subject: Fix for bug #31254: "Max_data_length" truncated / reported wrong (compiler issue ?) Problem: Improper compile-time flags on AIX prevented use of files > 2 GB. This resulted in Max_data_length being truncated to 2 GB by MyISAM code. Solution: Reverted large-file changes from the fix for bug10776. We need to define _LARGE_FILES on AIX to have support for files > 2 GB. Since _LARGE_FILE_API is incompatible with _LARGE_FILES and may be automatically defined by including standards.h, we also need a workaround to avoid this conflict. config/ac-macros/large_file.m4: Reverted large-file changes from the fix for bug10776. We need to define _LARGE_FILES on AIX to have support for files > 2 GB. include/my_global.h: _LARGE_FILE_API is defined in standards.h that is automatically included by at least some C++ compilers on AIX. Since it is also incompatible with _LARGE_FILES which is required for POSIX IO calls to be largefile-safe, the only workaround is to explicitely #undef _LARGE_FILE_API. --- config/ac-macros/large_file.m4 | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'config/ac-macros') diff --git a/config/ac-macros/large_file.m4 b/config/ac-macros/large_file.m4 index 2639cec5fb7..279ce6d60f1 100644 --- a/config/ac-macros/large_file.m4 +++ b/config/ac-macros/large_file.m4 @@ -128,8 +128,15 @@ AC_DEFUN([MYSQL_SYS_LARGEFILE], ac_cv_sys_largefile_source=1 ;; esac]) - # AIX 4.2 and later -- do nothing, include standards.h instead. - # this goes for both GNU and IBM C and C++ compilers. + AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, + ac_cv_sys_large_files, + [Large files support on AIX-style hosts.], + [case "$host_os" in + # Large file support on AIX is available starting from version 4.2 + # Tested only on 5.2 and up + aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*) + ac_cv_sys_large_files=1 ;; + esac]) fi ]) -- cgit v1.2.1