You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Jim Patterson <Ji...@Cognos.COM> on 1997/11/20 22:23:05 UTC

mod_info/1442: mod_info won't link under Windows NT/95

>Number:         1442
>Category:       mod_info
>Synopsis:       mod_info won't link under Windows NT/95
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Thu Nov 20 13:30:00 PST 1997
>Last-Modified:
>Originator:     Jim.Patterson@Cognos.COM
>Organization:
apache
>Release:        1.3b3
>Environment:
Win32
Visual C++ 5.0 SP 2
>Description:
Because of the DLL separation under Windows NT/95, the current mod_info module
will not link because of a series of missing externals.
>How-To-Repeat:
Try to build it using Visual C++.
>Fix:
The following patch should do it. It also fixes up a link problem in ApacheCore
(buildmark.c seems to have been missed in the ApacheCore project).

diff -cr apache_1.3b3\src/ApacheCore.dsp d:\apache_1.3b3\src/ApacheCore.dsp
*** apache_1.3b3\src/ApacheCore.dsp Mon Oct 20 16:19:10 1997
--- d:\apache_1.3b3\src/ApacheCore.dsp Thu Nov 20 15:12:30 1997
***************
*** 105,110 ****
--- 105,114 ----
  # End Source File
  # Begin Source File
  
+ SOURCE=.\buildmark.c
+ # End Source File
+ # Begin Source File
+ 
  SOURCE=.\main\explain.c
  # End Source File
  # Begin Source File
diff -cr apache_1.3b3\src/buildmark.c d:\apache_1.3b3\src/buildmark.c
*** apache_1.3b3\src/buildmark.c Thu Nov 13 17:25:44 1997
--- d:\apache_1.3b3\src/buildmark.c Thu Nov 20 14:54:32 1997
***************
*** 1,5 ****
  #if defined(__DATE__) && defined(__TIME__)
! const char SERVER_BUILT[] = __DATE__ " " __TIME__;
  #else
! const char SERVER_BUILT[] = "unknown";
  #endif
--- 1,6 ----
+ #include "conf.h"
  #if defined(__DATE__) && defined(__TIME__)
! API_VAR_EXPORT const char SERVER_BUILT[] = __DATE__ " " __TIME__;
  #else
! API_VAR_EXPORT const char SERVER_BUILT[] = "unknown";
  #endif
diff -cr apache_1.3b3\src/main/httpd.h d:\apache_1.3b3\src/main/httpd.h
*** apache_1.3b3\src/main/httpd.h Wed Nov 19 19:37:26 1997
--- d:\apache_1.3b3\src/main/httpd.h Thu Nov 20 14:55:12 1997
***************
*** 354,360 ****
  #else
  #define SERVER_VERSION	SERVER_BASEVERSION
  #endif
! extern MODULE_VAR_EXPORT const char SERVER_BUILT[];
  
  /* Numeric release version identifier: major minor bugfix betaseq
   * Always increases along the same track as the source branch.
--- 354,360 ----
  #else
  #define SERVER_VERSION	SERVER_BASEVERSION
  #endif
! extern API_VAR_EXPORT const char SERVER_BUILT[];
  
  /* Numeric release version identifier: major minor bugfix betaseq
   * Always increases along the same track as the source branch.
diff -cr apache_1.3b3\src/main/http_config.c d:\apache_1.3b3\src/main/http_config.c
*** apache_1.3b3\src/main/http_config.c Thu Nov  6 15:40:42 1997
--- d:\apache_1.3b3\src/main/http_config.c Thu Nov 20 14:57:12 1997
***************
*** 94,100 ****
   * than DYNAMIC_MODULE_LIMIT.
   */
  static int dynamic_modules = 0;
! module *top_module = NULL;
  
  typedef int (*handler_func) (request_rec *);
  typedef void *(*dir_maker_func) (pool *, char *);
--- 94,100 ----
   * than DYNAMIC_MODULE_LIMIT.
   */
  static int dynamic_modules = 0;
! API_VAR_EXPORT module *top_module = NULL;
  
  typedef int (*handler_func) (request_rec *);
  typedef void *(*dir_maker_func) (pool *, char *);
diff -cr apache_1.3b3\src/main/http_conf_globals.h d:\apache_1.3b3\src/main/http_conf_globals.h
*** apache_1.3b3\src/main/http_conf_globals.h Wed Oct 22 16:29:34 1997
--- d:\apache_1.3b3\src/main/http_conf_globals.h Thu Nov 20 14:53:06 1997
***************
*** 55,82 ****
   * Process config --- what the process ITSELF is doing
   */
  
! extern int standalone;
! extern uid_t user_id;
! extern char *user_name;
! extern gid_t group_id;
  #ifdef MULTIPLE_GROUPS
  extern gid_t group_id_list[NGROUPS_MAX];
  #endif
! extern int max_requests_per_child;
! extern int threads_per_child;
! extern int excess_requests_per_child;
  extern struct in_addr bind_address;
  extern listen_rec *listeners;
! extern int daemons_to_start;
! extern int daemons_min_free;
! extern int daemons_max_free;
! extern int daemons_limit;
  extern MODULE_VAR_EXPORT int suexec_enabled;
  extern int listenbacklog;
  
! extern char *pid_fname;
! extern char *scoreboard_fname;
! extern char *lock_fname;
  extern MODULE_VAR_EXPORT char *server_argv0;
  
  /* Trying to allocate these in the config pool gets us into some *nasty*
--- 55,82 ----
   * Process config --- what the process ITSELF is doing
   */
  
! extern API_VAR_EXPORT int standalone;
! extern API_VAR_EXPORT uid_t user_id;
! extern API_VAR_EXPORT char *user_name;
! extern API_VAR_EXPORT gid_t group_id;
  #ifdef MULTIPLE_GROUPS
  extern gid_t group_id_list[NGROUPS_MAX];
  #endif
! extern API_VAR_EXPORT int max_requests_per_child;
! extern API_VAR_EXPORT int threads_per_child;
! extern API_VAR_EXPORT int excess_requests_per_child;
  extern struct in_addr bind_address;
  extern listen_rec *listeners;
! extern API_VAR_EXPORT int daemons_to_start;
! extern API_VAR_EXPORT int daemons_min_free;
! extern API_VAR_EXPORT int daemons_max_free;
! extern API_VAR_EXPORT int daemons_limit;
  extern MODULE_VAR_EXPORT int suexec_enabled;
  extern int listenbacklog;
  
! extern API_VAR_EXPORT char *pid_fname;
! extern API_VAR_EXPORT char *scoreboard_fname;
! extern API_VAR_EXPORT char *lock_fname;
  extern MODULE_VAR_EXPORT char *server_argv0;
  
  /* Trying to allocate these in the config pool gets us into some *nasty*
***************
*** 85,92 ****
   * statically...
   */
  
! extern char server_root[MAX_STRING_LEN];
! extern char server_confname[MAX_STRING_LEN];
  
  /* We want this to have the least chance of being correupted if there
   * is some memory corruption, so we allocate it statically.
--- 85,92 ----
   * statically...
   */
  
! extern API_VAR_EXPORT char server_root[MAX_STRING_LEN];
! extern API_VAR_EXPORT char server_confname[MAX_STRING_LEN];
  
  /* We want this to have the least chance of being correupted if there
   * is some memory corruption, so we allocate it statically.
diff -cr apache_1.3b3\src/modules/standard/mod_info.c d:\apache_1.3b3\src/modules/standard/mod_info.c
*** apache_1.3b3\src/modules/standard/mod_info.c Sun Oct 26 15:20:06 1997
--- d:\apache_1.3b3\src/modules/standard/mod_info.c Thu Nov 20 14:56:44 1997
***************
*** 74,79 ****
--- 74,81 ----
   * 
   */
  
+ #define IS_MODULE
+ 
  #include "httpd.h"
  #include "http_config.h"
  #include "http_core.h"
***************
*** 99,105 ****
  } info_cfg_lines;
  
  module MODULE_VAR_EXPORT info_module;
! extern module *top_module;
  
  static void *create_info_config(pool *p, server_rec *s)
  {
--- 101,107 ----
  } info_cfg_lines;
  
  module MODULE_VAR_EXPORT info_module;
! extern API_VAR_EXPORT module *top_module;
  
  static void *create_info_config(pool *p, server_rec *s)
  {
%0
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, ]
[you need to include <ap...@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED.  This is not done]
[automatically because of the potential for mail loops. ]