From ab1e94988920c3764e7f6567eb2994666b679e13 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= <joao@trolltech.com>
Date: Fri, 12 Feb 2010 10:45:17 +0100
Subject: readdir64 is not available on HP-UX

Instead, 64-bit inode numbers in dirent are documented to be truncated.
Oh, well.

New define QT_NO_READDIR64 allows blacklisting other platforms that
support open64 and friends, but not readdir64.

Reviewed-by: Thiago Macieira
---
 mkspecs/common/posix/qplatformdefs.h | 4 +++-
 mkspecs/hpux-acc-64/qplatformdefs.h  | 1 +
 mkspecs/hpux-acc-o64/qplatformdefs.h | 1 +
 mkspecs/hpux-acc/qplatformdefs.h     | 1 +
 mkspecs/hpux-g++-64/qplatformdefs.h  | 1 +
 mkspecs/hpux-g++/qplatformdefs.h     | 1 +
 mkspecs/hpuxi-acc-32/qplatformdefs.h | 1 +
 mkspecs/hpuxi-acc-64/qplatformdefs.h | 1 +
 mkspecs/hpuxi-g++-64/qplatformdefs.h | 1 +
 9 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/mkspecs/common/posix/qplatformdefs.h b/mkspecs/common/posix/qplatformdefs.h
index e29bc6f..6310257 100644
--- a/mkspecs/common/posix/qplatformdefs.h
+++ b/mkspecs/common/posix/qplatformdefs.h
@@ -138,7 +138,9 @@
 #define QT_OPENDIR              ::opendir
 #define QT_CLOSEDIR             ::closedir
 
-#if defined(QT_USE_XOPEN_LFS_EXTENSIONS) && defined(QT_LARGEFILE_SUPPORT)
+#if defined(QT_LARGEFILE_SUPPORT) \
+        && defined(QT_USE_XOPEN_LFS_EXTENSIONS) \
+        && !defined(QT_NO_READDIR64)
 #define QT_DIRENT               struct dirent64
 #define QT_READDIR              ::readdir64
 #define QT_READDIR_R            ::readdir64_r
diff --git a/mkspecs/hpux-acc-64/qplatformdefs.h b/mkspecs/hpux-acc-64/qplatformdefs.h
index f9789a8..c1a9ab8 100644
--- a/mkspecs/hpux-acc-64/qplatformdefs.h
+++ b/mkspecs/hpux-acc-64/qplatformdefs.h
@@ -77,6 +77,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_OPEN_LARGEFILE
diff --git a/mkspecs/hpux-acc-o64/qplatformdefs.h b/mkspecs/hpux-acc-o64/qplatformdefs.h
index 5237806..c622d80 100644
--- a/mkspecs/hpux-acc-o64/qplatformdefs.h
+++ b/mkspecs/hpux-acc-o64/qplatformdefs.h
@@ -78,6 +78,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_SOCKLEN_T
diff --git a/mkspecs/hpux-acc/qplatformdefs.h b/mkspecs/hpux-acc/qplatformdefs.h
index 9ce08c6..c18ad49 100644
--- a/mkspecs/hpux-acc/qplatformdefs.h
+++ b/mkspecs/hpux-acc/qplatformdefs.h
@@ -80,6 +80,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_OPEN_LARGEFILE
diff --git a/mkspecs/hpux-g++-64/qplatformdefs.h b/mkspecs/hpux-g++-64/qplatformdefs.h
index f3fbda5..e9a9e75 100644
--- a/mkspecs/hpux-g++-64/qplatformdefs.h
+++ b/mkspecs/hpux-g++-64/qplatformdefs.h
@@ -77,6 +77,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #endif // QPLATFORMDEFS_H
diff --git a/mkspecs/hpux-g++/qplatformdefs.h b/mkspecs/hpux-g++/qplatformdefs.h
index 38e9408..9296ac2 100644
--- a/mkspecs/hpux-g++/qplatformdefs.h
+++ b/mkspecs/hpux-g++/qplatformdefs.h
@@ -79,6 +79,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_SOCKLEN_T
diff --git a/mkspecs/hpuxi-acc-32/qplatformdefs.h b/mkspecs/hpuxi-acc-32/qplatformdefs.h
index a0d2464..6aafed2 100644
--- a/mkspecs/hpuxi-acc-32/qplatformdefs.h
+++ b/mkspecs/hpuxi-acc-32/qplatformdefs.h
@@ -78,6 +78,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_OPEN_LARGEFILE
diff --git a/mkspecs/hpuxi-acc-64/qplatformdefs.h b/mkspecs/hpuxi-acc-64/qplatformdefs.h
index a0d2464..6aafed2 100644
--- a/mkspecs/hpuxi-acc-64/qplatformdefs.h
+++ b/mkspecs/hpuxi-acc-64/qplatformdefs.h
@@ -78,6 +78,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_OPEN_LARGEFILE
diff --git a/mkspecs/hpuxi-g++-64/qplatformdefs.h b/mkspecs/hpuxi-g++-64/qplatformdefs.h
index 288a331..f6789ee 100644
--- a/mkspecs/hpuxi-g++-64/qplatformdefs.h
+++ b/mkspecs/hpuxi-g++-64/qplatformdefs.h
@@ -77,6 +77,7 @@
 #endif
 
 #define QT_USE_XOPEN_LFS_EXTENSIONS
+#define QT_NO_READDIR64
 #include "../common/posix/qplatformdefs.h"
 
 #undef QT_OPEN_LARGEFILE
-- 
cgit v0.12