summaryrefslogtreecommitdiffstats
path: root/config.tests/unix/largefile
diff options
context:
space:
mode:
Diffstat (limited to 'config.tests/unix/largefile')
-rw-r--r--config.tests/unix/largefile/ConfigureChecks.cmake42
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)