Changes to automatically enable large file support on some systems.
I believe this works on Linux (tested both on a system with large file
support and one without it), and it may work on Solaris 2.7.
The changes are twofold:
(1) The configure script now boldly tries to set the two symbols that
are recommended (for Solaris and Linux), and then tries a test
script that does some simple seeking without writing.
(2) The _portable_{fseek,ftell} functions are a little more systematic
in how they try the different large file support options: first
try fseeko/ftello, but only if off_t is large; then try
fseek64/ftell64; then try hacking with fgetpos/fsetpos.
I'm keeping my fingers crossed. The meaning of the
HAVE_LARGEFILE_SUPPORT macro is not at all clear.
I'll see if I can get it to work on Windows as well.
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 14fb375..255a983 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -90,6 +90,9 @@
/* Defined on Solaris to see additional function prototypes. */
#undef __EXTENSIONS__
+/* This must be set to 64 on some systems to enable large file support */
+#undef _FILE_OFFSET_BITS
+
/* Define if getpgrp() must be called as getpgrp(0). */
#undef GETPGRP_HAVE_ARG
@@ -166,6 +169,9 @@
/* Define if the compiler provides a wchar.h header file. */
#undef HAVE_WCHAR_H
+/* This must be defined on some systems to enable large file support */
+#undef _LARGEFILE_SOURCE
+
/* Define if you want to have a Unicode type. */
#undef Py_USING_UNICODE
@@ -716,10 +722,3 @@
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
#endif
#endif
-
-/* Define the macros needed if on a UnixWare 7.x system. */
-#if defined(__USLC__) && defined(__SCO_VERSION__)
-#define SCO_ACCEPT_BUG /* Use workaround for UnixWare accept() bug */
-#define SCO_ATAN2_BUG /* Use workaround for UnixWare atan2() bug */
-#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
-#endif