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.
This commit is contained in:
parent
40850e7f1f
commit
cf1225b9af
|
@ -337,14 +337,19 @@ ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Configure Large File Support.
|
# Configure Large File Support.
|
||||||
|
KWSYS_PLATFORM_CXX_TEST(KWSYS_CXX_HAS_CSTDIO
|
||||||
|
"Checking whether header cstdio is available" DIRECT)
|
||||||
SET(KWSYS_LFS_AVAILABLE 0)
|
SET(KWSYS_LFS_AVAILABLE 0)
|
||||||
IF(KWSYS_LFS_REQUESTED)
|
IF(KWSYS_LFS_REQUESTED)
|
||||||
# Large File Support is requested.
|
# Large File Support is requested.
|
||||||
SET(KWSYS_LFS_REQUESTED 1)
|
SET(KWSYS_LFS_REQUESTED 1)
|
||||||
|
|
||||||
# Check for large file support.
|
# 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
|
KWSYS_PLATFORM_CXX_TEST_RUN(KWSYS_LFS_WORKS
|
||||||
"Checking for Large File Support" DIRECT)
|
"Checking for Large File Support" DIRECT)
|
||||||
|
SET(KWSYS_PLATFORM_CXX_TEST_DEFINES)
|
||||||
|
|
||||||
IF(KWSYS_LFS_WORKS)
|
IF(KWSYS_LFS_WORKS)
|
||||||
SET(KWSYS_LFS_AVAILABLE 1)
|
SET(KWSYS_LFS_AVAILABLE 1)
|
||||||
|
|
|
@ -91,6 +91,11 @@ bool f(const kwsys_stl::string& s) { return s != ""; }
|
||||||
int main() { return 0; }
|
int main() { return 0; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef TEST_KWSYS_CXX_HAS_CSTDIO
|
||||||
|
#include <cstdio>
|
||||||
|
int main() { return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TEST_KWSYS_CXX_HAS_CSTDDEF
|
#ifdef TEST_KWSYS_CXX_HAS_CSTDDEF
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
void f(size_t) {}
|
void f(size_t) {}
|
||||||
|
@ -331,6 +336,9 @@ int main()
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#if KWSYS_CXX_HAS_CSTDIO
|
||||||
|
# include <cstdio>
|
||||||
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main(int, char **argv)
|
int main(int, char **argv)
|
||||||
|
|
Loading…
Reference in New Issue