From cf1225b9afd6c3f6d2de7f45929eb64afeefed90 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 27 Jul 2009 16:45:15 -0400 Subject: BUG: Enable large files only if works Some AIX/gcc version combinations the header breaks when large file support is enabled. See this GCC issue for details: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20366 We work around the problem by enhancing the configuration check for large file support to include when available. This will cause LFS to be disabled when the above problem occurs. --- Source/kwsys/CMakeLists.txt | 5 +++++ Source/kwsys/kwsysPlatformTestsCXX.cxx | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt index 0a816e2..00d301e 100644 --- a/Source/kwsys/CMakeLists.txt +++ b/Source/kwsys/CMakeLists.txt @@ -337,14 +337,19 @@ ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX) #----------------------------------------------------------------------------- # Configure Large File Support. +KWSYS_PLATFORM_CXX_TEST(KWSYS_CXX_HAS_CSTDIO + "Checking whether header cstdio is available" DIRECT) SET(KWSYS_LFS_AVAILABLE 0) IF(KWSYS_LFS_REQUESTED) # Large File Support is requested. SET(KWSYS_LFS_REQUESTED 1) # Check for large file support. + SET(KWSYS_PLATFORM_CXX_TEST_DEFINES + -DKWSYS_CXX_HAS_CSTDIO=${KWSYS_CXX_HAS_CSTDIO}) KWSYS_PLATFORM_CXX_TEST_RUN(KWSYS_LFS_WORKS "Checking for Large File Support" DIRECT) + SET(KWSYS_PLATFORM_CXX_TEST_DEFINES) IF(KWSYS_LFS_WORKS) SET(KWSYS_LFS_AVAILABLE 1) diff --git a/Source/kwsys/kwsysPlatformTestsCXX.cxx b/Source/kwsys/kwsysPlatformTestsCXX.cxx index f0a2dfc..3d5550d 100644 --- a/Source/kwsys/kwsysPlatformTestsCXX.cxx +++ b/Source/kwsys/kwsysPlatformTestsCXX.cxx @@ -91,6 +91,11 @@ bool f(const kwsys_stl::string& s) { return s != ""; } int main() { return 0; } #endif +#ifdef TEST_KWSYS_CXX_HAS_CSTDIO +#include +int main() { return 0; } +#endif + #ifdef TEST_KWSYS_CXX_HAS_CSTDDEF #include void f(size_t) {} @@ -331,6 +336,9 @@ int main() #include #include #include +#if KWSYS_CXX_HAS_CSTDIO +# include +#endif #include int main(int, char **argv) -- cgit v0.12