]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Grab these trunk fixes:
authorJeff Trawick <trawick@apache.org>
Thu, 14 Apr 2011 16:37:58 +0000 (16:37 +0000)
committerJeff Trawick <trawick@apache.org>
Thu, 14 Apr 2011 16:37:58 +0000 (16:37 +0000)
   r422306: gen_test_char doesn't need util_debug
  r1089950: don't build checkgid on MinGW
  r1089951: rework choice of CGI implementation
  r1089954: gcc compatibility of win32/os.h
  r1090417: include <stdlib.h> in win32/os.h before creating exit() macro
            a few other tiny bits of code and svn:ignore entries

Submitted by: John Vandenberg <jayvdb gmail.com>, others
Reviewed by: trawick, fuangk, wrowe

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1092390 13f79535-47bb-0310-9956-ffa450edef68

12 files changed:
CHANGES
STATUS
include/ap_config.h
modules/generators/config5.m4
os/win32/Makefile.in [new file with mode: 0644]
os/win32/os.h
server/Makefile.in
server/mpm/winnt/Makefile.in [new file with mode: 0644]
server/mpm/winnt/config.m4 [new file with mode: 0644]
server/mpm/winnt/mpm_winnt.c
support/Makefile.in
support/config.m4

diff --git a/CHANGES b/CHANGES
index 81e439a11cc84228345d082b81409047a1309899..75a7df8717800f1cb7f3472e3e57b5492678af47 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.18
 
+  *) MinGW build improvements.  PR 49535.  [John Vandenberg 
+     <jayvdb gmail.com>, Jeff Trawick]
+
   *) mod_ssl, ab: Support OpenSSL compiled without SSLv2 support.
      [Stefan Fritsch]
 
diff --git a/STATUS b/STATUS
index 872564555167024048c05ed6e309df019c829081..f09a4f73505d1925b13c097fae9e3be9f8684c71 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -96,18 +96,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
      2.2.x patch: Trunk version of patch works with fuzz
      +1: sf, trawick, wrowe
 
-  * Critical MinGW build issues, svn:ignore
-     This serves pages and doesn't have junk in "svn status" output ;)
-     Trunk:
-          r422306: gen_test_char doesn't need util_debug
-         r1089950: don't build checkgid on MinGW
-         r1089951: rework choice of CGI implementation
-         r1089954: gcc compatibility of win32/os.h
-         r1090417: include <stdlib.h> in win32/os.h before creating exit() macro
-          a few other tiny bits of code and svn:ignore entries
-     2.2.x patch: http://people.apache.org/~trawick/mingw_april_10.txt
-     +1: trawick, wrowe, fuankg
-
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
 
index f729adc0245e2ac046ee9d1255bcdb159e68168f..dd977a6ca03fa40cf6fc02268a2f7ee1c5667e56 100644 (file)
         APR_OPTIONAL_HOOK(ap,name,fn,pre,succ,order)
 
 #include "os.h"
-#if !defined(WIN32) && !defined(NETWARE)
+#if (!defined(WIN32) && !defined(NETWARE)) || defined(__MINGW32__)
 #include "ap_config_auto.h"
 #include "ap_config_layout.h"
 #endif
index d4f6282194ff8f9e076dd913aaa72a6879e4e2bd..feb7120e95c5f294a4050ebee25917963dffe811 100644 (file)
@@ -11,15 +11,30 @@ APACHE_MODULE(info, server information, , , most)
 APACHE_MODULE(suexec, set uid and gid for spawned processes, , , no, [
               other_targets=suexec ] )
 
-if ap_mpm_is_threaded; then
-# if we are using a threaded MPM, we will get better performance with
-# mod_cgid, so make it the default.
+# Is mod_cgid needed?
+case $host in
+    *mingw*)
+        dnl No fork+thread+fd issues, and cgid doesn't work anyway.
+        cgid_needed="no"
+        ;;
+    *)
+        if ap_mpm_is_threaded; then
+            dnl if we are using a threaded MPM on Unix, we can get better
+            dnl performance with mod_cgid, and also avoid potential issues
+            dnl with forking from a threaded process.
+            cgid_needed="yes"
+        else
+            dnl if we are using a non-threaded MPM, it makes little sense to
+            dnl use mod_cgid, and it just opens up holes we don't need.
+            cgid_needed="no"
+        fi
+        ;;
+esac
+
+if test $cgid_needed = "yes"; then
     APACHE_MODULE(cgid, CGI scripts, , , yes)
     APACHE_MODULE(cgi, CGI scripts, , , no)
 else
-# if we are using a non-threaded MPM, it makes little sense to use
-# mod_cgid, and it just opens up holes we don't need.  Make mod_cgi the
-# default
     APACHE_MODULE(cgi, CGI scripts, , , yes)
     APACHE_MODULE(cgid, CGI scripts, , , no)
 fi
diff --git a/os/win32/Makefile.in b/os/win32/Makefile.in
new file mode 100644 (file)
index 0000000..d243747
--- /dev/null
@@ -0,0 +1,5 @@
+\r
+LTLIBRARY_NAME    = libos.la\r
+LTLIBRARY_SOURCES = util_win32.c ap_regkey.c modules.c\r
+\r
+include $(top_srcdir)/build/ltlib.mk\r
index 8b9f8acb03245e28e6ba9643ee527414e587a7fc..0583e422994bab90017ea980d5a8f97c7d94e933 100644 (file)
@@ -48,6 +48,7 @@
 #define APACHE_MPM_DIR  "server/mpm/winnt" /* generated on unix */
 
 #include <stddef.h>
+#include <stdlib.h> /* for exit() */
 
 #ifdef __cplusplus
 extern "C" {
@@ -93,7 +94,7 @@ int set_listeners_noninheritable(apr_pool_t *p);
 #define AP_DECLARE_LATE_DLL_FUNC(lib, rettype, calltype, fn, ord, args, names) \
     typedef rettype (calltype *ap_winapi_fpt_##fn) args; \
     static ap_winapi_fpt_##fn ap_winapi_pfn_##fn = NULL; \
-    __inline rettype ap_winapi_##fn args \
+    static APR_INLINE rettype ap_winapi_##fn args \
     {   if (!ap_winapi_pfn_##fn) \
             ap_winapi_pfn_##fn = (ap_winapi_fpt_##fn) ap_load_dll_func(lib, #fn, ord); \
         return (*(ap_winapi_pfn_##fn)) names; }; \
index 89498dd46eab91d7533b2def492bdf62750815de..db2caa0d529d0d54441cf00c3237aababd7c6d46 100644 (file)
@@ -21,7 +21,7 @@ TARGETS = delete-exports $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h htt
 include $(top_builddir)/build/rules.mk
 include $(top_srcdir)/build/library.mk
 
-gen_test_char_OBJECTS = gen_test_char.lo util_debug.lo
+gen_test_char_OBJECTS = gen_test_char.lo
 gen_test_char: $(gen_test_char_OBJECTS)
        $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
 
diff --git a/server/mpm/winnt/Makefile.in b/server/mpm/winnt/Makefile.in
new file mode 100644 (file)
index 0000000..22a7808
--- /dev/null
@@ -0,0 +1,5 @@
+\r
+LTLIBRARY_NAME    = libwinnt.la\r
+LTLIBRARY_SOURCES = mpm_winnt.c child.c nt_eventlog.c service.c\r
+\r
+include $(top_srcdir)/build/ltlib.mk\r
diff --git a/server/mpm/winnt/config.m4 b/server/mpm/winnt/config.m4
new file mode 100644 (file)
index 0000000..9320958
--- /dev/null
@@ -0,0 +1,3 @@
+if test "$MPM_NAME" = "winnt" ; then\r
+    APACHE_FAST_OUTPUT(server/mpm/$MPM_NAME/Makefile)\r
+fi\r
index 90f9232e0f9d00a723f46d8b7a936ff99aee4fd4..f0dfc8fb49366b7bf26bcdedef5b02b2fc6971ca 100644 (file)
@@ -59,7 +59,7 @@ server_rec *ap_server_conf;
 static HANDLE shutdown_event;  /* used to signal the parent to shutdown */
 static HANDLE restart_event;   /* used to signal the parent to restart */
 
-static char ap_coredump_dir[MAX_STRING_LEN];
+char ap_coredump_dir[MAX_STRING_LEN];
 
 static int one_process = 0;
 static char const* signal_arg = NULL;
index 53672e2583acb470533db3950ebeb50d171c9936..aaaf6f4ab478de779a512937f831348e80ddf18b 100644 (file)
@@ -3,7 +3,7 @@ DISTCLEAN_TARGETS = apxs apachectl dbmmanage log_server_status \
 
 CLEAN_TARGETS = suexec
 
-PROGRAMS = htpasswd htdigest rotatelogs logresolve ab checkgid htdbm htcacheclean httxt2dbm
+PROGRAMS = htpasswd htdigest rotatelogs logresolve ab htdbm htcacheclean httxt2dbm $(NONPORTABLE_SUPPORT)
 TARGETS  = $(PROGRAMS)
 
 PROGRAM_LDADD        = $(UTIL_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(EXTRA_LIBS) $(AP_LIBS)
index f91103753b7337206d4675ebfb953a4c43f2fb06..c0ea8f91dccb55885e0cca68692b806ee01b9044 100644 (file)
@@ -103,6 +103,20 @@ fi
 ])
 APACHE_SUBST(httxt2dbm_LTFLAGS)
 
+# Configure or check which of the non-portable support programs can be enabled.
+
+NONPORTABLE_SUPPORT=""
+case $host in
+    *mingw*)
+        ;;
+    *)
+        NONPORTABLE_SUPPORT="checkgid"
+        ;;
+esac
+APACHE_SUBST(NONPORTABLE_SUPPORT)
+
+# Configure the ulimit -n command used by apachectl.
+
 case $host in
     *aix*)
         # this works in any locale, unlike the default command below, which