diff options
author | Brad King <brad.king@kitware.com> | 2009-07-27 20:45:15 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-07-27 20:45:15 (GMT) |
commit | cf1225b9afd6c3f6d2de7f45929eb64afeefed90 (patch) | |
tree | 441b654b09b55d31d0f5cafe66e15fe52f68c7cc /Source | |
parent | 40850e7f1fea49e863d321291585d9a1ee8e8037 (diff) | |
download | CMake-cf1225b9afd6c3f6d2de7f45929eb64afeefed90.zip CMake-cf1225b9afd6c3f6d2de7f45929eb64afeefed90.tar.gz CMake-cf1225b9afd6c3f6d2de7f45929eb64afeefed90.tar.bz2 |
BUG: Enable large files only if <cstdio> works
Some AIX/gcc version combinations the <cstdio> 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 <cstdio> when available. This will cause
LFS to be disabled when the above problem occurs.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/kwsys/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Source/kwsys/kwsysPlatformTestsCXX.cxx | 8 |
2 files changed, 13 insertions, 0 deletions
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 <cstdio> +int main() { return 0; } +#endif + #ifdef TEST_KWSYS_CXX_HAS_CSTDDEF #include <cstddef> void f(size_t) {} @@ -331,6 +336,9 @@ int main() #include <sys/types.h> #include <sys/stat.h> #include <assert.h> +#if KWSYS_CXX_HAS_CSTDIO +# include <cstdio> +#endif #include <stdio.h> int main(int, char **argv) |