components/python/python26/Python26-19-ext-stdio.patch
changeset 99 c15c9099bb44
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/python26/Python26-19-ext-stdio.patch	Wed Feb 23 10:37:11 2011 -0800
@@ -0,0 +1,34 @@
+diff --git Python-2.6.4/Modules/python.c Python-2.6.4/Modules/python.c
+--- Python-2.6.4/Modules/python.c
++++ Python-2.6.4/Modules/python.c
+@@ -6,6 +6,13 @@
+ #include <floatingpoint.h>
+ #endif
+ 
++#if defined(sun) && defined(__SVR4) && !defined(_LP64)
++#define USE_EXTENDED_FILE_STDIO 1
++#include <stdio.h>
++#include <stdio_ext.h>
++#include <signal.h>
++#endif
++
+ int
+ main(int argc, char **argv)
+ {
+@@ -20,5 +27,16 @@
+ 	m = fpgetmask();
+ 	fpsetmask(m & ~FP_X_OFL);
+ #endif
++#ifdef USE_EXTENDED_FILE_STDIO
++	/* enable extended FILE facility on Solaris so that Python
++           apps can keep more than 256 file descriptors open */
++	struct rlimit rlp;
++	(void) getrlimit(RLIMIT_NOFILE, &rlp);
++	rlp.rlim_cur = rlp.rlim_max;
++	if (setrlimit(RLIMIT_NOFILE, &rlp) != -1) {
++		enable_extended_FILE_stdio(-1, SIGABRT);
++	}
++#endif
++
+ 	return Py_Main(argc, argv);
+ }