summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Trawick <trawick@apache.org>2011-04-14 16:37:58 +0000
committerJeff Trawick <trawick@apache.org>2011-04-14 16:37:58 +0000
commit3d99e797f6f40c276f9f1ccc65fb97cb81c983b9 (patch)
treeff192404e3141a661044759118c645cb57e27a32
parentf5624d9f995dd37375c5dcd7ecba9fc5a0fa1836 (diff)
downloadhttpd-3d99e797f6f40c276f9f1ccc65fb97cb81c983b9.tar.gz
Grab these trunk fixes:
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
-rw-r--r--CHANGES3
-rw-r--r--STATUS12
-rw-r--r--include/ap_config.h2
-rw-r--r--modules/generators/config5.m427
-rw-r--r--os/win32/Makefile.in5
-rw-r--r--os/win32/os.h3
-rw-r--r--server/Makefile.in2
-rw-r--r--server/mpm/winnt/Makefile.in5
-rw-r--r--server/mpm/winnt/config.m43
-rw-r--r--server/mpm/winnt/mpm_winnt.c2
-rw-r--r--support/Makefile.in2
-rw-r--r--support/config.m414
12 files changed, 57 insertions, 23 deletions
diff --git a/CHANGES b/CHANGES
index 81e439a11c..75a7df8717 100644
--- 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 8725645551..f09a4f7350 100644
--- 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 ]
diff --git a/include/ap_config.h b/include/ap_config.h
index f729adc024..dd977a6ca0 100644
--- a/include/ap_config.h
+++ b/include/ap_config.h
@@ -230,7 +230,7 @@
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
diff --git a/modules/generators/config5.m4 b/modules/generators/config5.m4
index d4f6282194..feb7120e95 100644
--- a/modules/generators/config5.m4
+++ b/modules/generators/config5.m4
@@ -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
index 0000000000..d2437475e3
--- /dev/null
+++ b/os/win32/Makefile.in
@@ -0,0 +1,5 @@
+
+LTLIBRARY_NAME = libos.la
+LTLIBRARY_SOURCES = util_win32.c ap_regkey.c modules.c
+
+include $(top_srcdir)/build/ltlib.mk
diff --git a/os/win32/os.h b/os/win32/os.h
index 8b9f8acb03..0583e42299 100644
--- a/os/win32/os.h
+++ b/os/win32/os.h
@@ -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; }; \
diff --git a/server/Makefile.in b/server/Makefile.in
index 89498dd46e..db2caa0d52 100644
--- a/server/Makefile.in
+++ b/server/Makefile.in
@@ -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
index 0000000000..22a7808580
--- /dev/null
+++ b/server/mpm/winnt/Makefile.in
@@ -0,0 +1,5 @@
+
+LTLIBRARY_NAME = libwinnt.la
+LTLIBRARY_SOURCES = mpm_winnt.c child.c nt_eventlog.c service.c
+
+include $(top_srcdir)/build/ltlib.mk
diff --git a/server/mpm/winnt/config.m4 b/server/mpm/winnt/config.m4
new file mode 100644
index 0000000000..9320958824
--- /dev/null
+++ b/server/mpm/winnt/config.m4
@@ -0,0 +1,3 @@
+if test "$MPM_NAME" = "winnt" ; then
+ APACHE_FAST_OUTPUT(server/mpm/$MPM_NAME/Makefile)
+fi
diff --git a/server/mpm/winnt/mpm_winnt.c b/server/mpm/winnt/mpm_winnt.c
index 90f9232e0f..f0dfc8fb49 100644
--- a/server/mpm/winnt/mpm_winnt.c
+++ b/server/mpm/winnt/mpm_winnt.c
@@ -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;
diff --git a/support/Makefile.in b/support/Makefile.in
index 53672e2583..aaaf6f4ab4 100644
--- a/support/Makefile.in
+++ b/support/Makefile.in
@@ -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)
diff --git a/support/config.m4 b/support/config.m4
index f91103753b..c0ea8f91dc 100644
--- a/support/config.m4
+++ b/support/config.m4
@@ -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