Seema Alevoor wrote:
> Here is the patch which uses extended_FILE function
> (I'm unable to post the webrev as my build m/c is down).
> With this, duphi.patch is no longer needed.
>
> --- apr-1.3.3/misc/unix/start.c.orig    Mon Sep 22 04:16:53 2008
> +++ apr-1.3.3/misc/unix/start.c Mon Sep 22 04:14:52 2008
> @@ -23,6 +23,10 @@
>  #include "apr_arch_proc_mutex.h" /* for 
> apr_proc_mutex_unix_setup_lock() */
>  #include "apr_arch_internal_time.h"
>
> +#if defined(SOLARIS2) && !defined(_LP64)
> +#include <stdio_ext.h>
> +#endif
> +
>  APR_DECLARE(apr_status_t) apr_app_initialize(int *argc,
>                                               const char * const * *argv,
>                                               const char * const * *env)
> @@ -46,6 +50,12 @@
>          return APR_SUCCESS;
>      }
>
> +#if defined(SOLARIS2) && !defined(_LP64)
> +    if (enable_extended_FILE_stdio (-1, -1) < 0) {
> +        return APR_FROM_OS_ERROR(errno);

this looks like a reasonable though slightly imperfect choice to me

in essence, we break some unknown but theoretically possible code that 
relies on FILE._file that is used in the same process as APR apps like 
httpd, and in return for that we allow normally written code to work 
fine regardless of the number of open files, without extra 
patches+syscalls to move file descriptors above 256 to leave room for 
such unknown but theoretically possible code

such code

* isn't portable, so it doesn't fit the normal profile of code used with APR
* won't compile on OpenSolaris or future Solaris 11 anyway
* will encounter SIGABRT when it uses the FILE._file value in syscalls, 
to allow it to be easily diagnosed


Reply via email to