diff options
Diffstat (limited to 'config.tests/unix/largefile')
-rw-r--r-- | config.tests/unix/largefile/ConfigureChecks.cmake | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/config.tests/unix/largefile/ConfigureChecks.cmake b/config.tests/unix/largefile/ConfigureChecks.cmake new file mode 100644 index 000000000..4e0cc4c5d --- /dev/null +++ b/config.tests/unix/largefile/ConfigureChecks.cmake @@ -0,0 +1,42 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + + +##### check for large file support + +check_cxx_source_compiles(" +#define _LARGEFILE_SOURCE +#define _LARGE_FILES +#define _FILE_OFFSET_BITS 64 + +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <assert.h> +#include <stdio.h> + +int main( int, char **argv ) +{ +// check that off_t can hold 2^63 - 1 and perform basic operations... +#define OFF_T_64 (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + if (OFF_T_64 % 2147483647 != 1) + return 1; + + // stat breaks on SCO OpenServer + struct stat buf; + stat( argv[0], &buf ); + if (!S_ISREG(buf.st_mode)) + return 2; + + FILE *file = fopen( argv[0], \"r\" ); + off_t offset = ftello( file ); + fseek( file, offset, SEEK_CUR ); + fclose( file ); + return 0; +}" +QT_LARGEFILE_SUPPORT) |