httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@engelschall.com (Ralf S. Engelschall)
Subject For Roy: [PATCH] Remove HIDE stuff
Date Tue, 07 Apr 1998 06:28:35 GMT

Remove HIDE stuff
-----------------

This is the patch for Roy's big change to remove the HIDE stuff.
Roy: Apply this patch via

  $ cd apache-1.3
  $ patch <...
  $ rm src/helpers/UpdateHide
  $ cvs rm src/helpers/UpdateHide
  $ rm src/include/hide.h
  $ cvs rm src/include/hide.h
  $ cvs commit .

to completely remove the HIDE stuff.
                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com

Index: STATUS
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/STATUS,v
retrieving revision 1.268
diff -u -r1.268 STATUS
--- STATUS	1998/04/07 02:47:10	1.268
+++ STATUS	1998/04/07 06:18:21
@@ -60,8 +60,6 @@
     * Ralf's mod_rewrite meta-construct expansion inconsistency fix
     * Martin's new URI parsing stuff (the source module main/util_uri.c)
     * New `%a' construct for LogFormat and CustomLog. PR#1885
-    * Ralf's `Rule HIDE' feature for hiding the symbol namespace
-      -- vetoed by Roy, currently going with Ralf's replacement plan
     * Make \\ behave as expected.
     * Fix for "poly" directive in image maps. PR#1771
     * Reduce memory usage, and speed up ServerAlias support. PR#1531
@@ -70,7 +68,6 @@
     * Dean's new mod_test_util_uri.c 
     * back out USE_PTHREAD_SERIALIZED_ACCEPT for solaris
     * Ken's abstraction of SERVER_{BUILT,VERSION}
-    * Ken's fix for os/unix/os.h and the new -DHIDE functionality
     * Ralf's Config File Line Continuation
     * Ralf's Reanimation of DBM support for RewriteMap in mod_rewrite PR#1696
     * Ralf's fix for the `<VirtualHost> w/o mod_rewrite' situation. PR#1790
@@ -100,8 +97,6 @@
     * Marc's mod_proxy was not clearing the Proxy-Connection header
     * Dean's API_EXPORT and CORE_EXPORT cleanup for core functions
     * Ralf's new ApacheBench support program (src/support/ab.c)
-    * Ken's change HIDE default to "yes", always include hide.h
-      -- vetoed by Roy, currently going with Ralf's replacement plan
     * Ralf's major Configure cleanup
     * Ralf's additional manual pages for the support programs
     * Ben Hyde's Configure check for unknown command switch
@@ -110,7 +105,6 @@
     * Ralf's mod_proxy fix to use FTP SIZE response for Content-Length, PR#1183
     * Ralf's change to make the shared object compilation command more portable
     * Dean's protect against FD_SETSIZE mismatches
-    * Ralf's fallback stategy because of HIDE for loading shared object modules
     * Martin's fix to allow %2F chars in proxy requests and in the uri query
       part
     * fix to mark listening sockets for closure in the parent after a SIGHUP 
Index: src/CHANGES
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/CHANGES,v
retrieving revision 1.758
diff -u -r1.758 CHANGES
--- CHANGES	1998/04/06 05:21:40	1.758
+++ CHANGES	1998/04/07 06:18:40
@@ -135,11 +135,6 @@
      %2f in them (occurs quite often in
      http://.../cgi-bin/...?http%3A%2F%2F... references) [Martin Kraemer]
 
-  *) Finally fix the shared object loading by using a fallback strategy to
-     overcome the HIDE feature problematic without loosing special cases. Also
-     a huge comment was added to mod_so.c to make the situation more clear
-     for the future. [Ralf S. Engelschall]
-
   *) Protect against FD_SETSIZE mismatches.  [Dean Gaudet]
 
   *) Make the shared object compilation command more portable by avoiding
@@ -182,12 +177,6 @@
      verbose than GNU make), same style to comments in the Configure script,
      added Apache license header, fixed a few bugs, etc. [Ralf S. Engelschall]
      
-  *) The default for the HIDE rule is now "yes" to aid portability, and
-     include/hide.h is always included.  It doesn't do anything if the
-     rule is "no" but the dependencies don't change now regardless.
-     Previously, a "make depend" would result in different dependencies
-     according to how the rule was set.  [Ken Coar]
-
   *) Add the new ApacheBench program "ab" to src/support/: This is derived
      from the ZeusBench benchmarking program and can be used to determine the
      response performance of an Apache installation. This version is
@@ -409,10 +398,6 @@
      [Konstantin Morshnev <moko@design.ru>] PR#1771
 
   *) Make \\ behave as expected.  [Ronald.Tschalaer@psi.ch]
-
-  *) Add `Rule HIDE' to Configuration to hide the Apache symbol
-     namespace from conflicting with third-party libraries some
-     modules force to be linked with Apache. [Ralf S. Engelschall]
 
   *) Add the `%a' construct to LogFormat and CustomLog to log the client IP
      address. [Todd Eigenschink <eigenstr@mixi.net>, PR#1885]
Index: src/Configuration.tmpl
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/Configuration.tmpl,v
retrieving revision 1.94
diff -u -r1.94 Configuration.tmpl
--- Configuration.tmpl	1998/04/06 11:30:48	1.94
+++ Configuration.tmpl	1998/04/07 06:19:08
@@ -89,7 +89,7 @@
 # functions. The format is: Rule RULE=value
 #
 # At present, only the following RULES are known: WANTHSREGEX, SOCKS4,
-# STATUS, IRIXNIS, IRIXN32, PARANOID, and HIDE.
+# STATUS, IRIXNIS, IRIXN32 and PARANOID.
 #
 # For all Rules, if set to "yes", then Configure knows we want that
 # capability and does what is required to add it in. If set to "default"
@@ -124,18 +124,12 @@
 #  is performing this function. If PARANOID is set to yes, it will
 #  actually print-out the code that the modules execute
 #
-# HIDE:
-#  This has no run-time penalty, but helps keep the Apache
-#  namespace from colliding with that used by other libraries
-#  pulled in by modules. 
-#
 
 Rule STATUS=yes
 Rule SOCKS4=no
 Rule IRIXNIS=no
 Rule IRIXN32=yes
 Rule PARANOID=no
-Rule HIDE=yes
 
 # The following rules should be set automatically by Configure. However, if
 # they are not set by Configure (because we don't know the correct value for
Index: src/Configure
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/Configure,v
retrieving revision 1.228
diff -u -r1.228 Configure
--- Configure	1998/04/05 21:34:38	1.228
+++ Configure	1998/04/07 06:18:48
@@ -232,7 +232,6 @@
 RULE_IRIXNIS=`./helpers/CutRule IRIXNIS $file`
 RULE_IRIXN32=`./helpers/CutRule IRIXN32 $file`
 RULE_PARANOID=`./helpers/CutRule PARANOID $file`
-RULE_HIDE=`./helpers/CutRule HIDE $file`
 
 ####################################################################
 ## Preset some "constants";
@@ -1145,13 +1144,6 @@
     REGLIB="regex/libregex.a"
     SUBDIRS="$SUBDIRS regex"
     CFLAGS="$CFLAGS -DUSE_HSREGEX"
-fi
-
-####################################################################
-## Now the definition of HIDE if needed/wanted.
-##
-if [ "$RULE_HIDE" = "yes" ]; then
-    CFLAGS="$CFLAGS -DHIDE"
 fi
 
 ####################################################################
Index: src/include/alloc.h
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/include/alloc.h,v
retrieving revision 1.53
diff -u -r1.53 alloc.h
--- alloc.h	1998/04/06 06:43:14	1.53
+++ alloc.h	1998/04/07 06:20:31
@@ -94,7 +94,6 @@
  * destroyed before the parent pool
  */
 #ifndef POOL_DEBUG
-/* could be defined when we're using HIDE */
 #ifdef pool_join
 #undef pool_join
 #endif
Index: src/include/conf.h
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/include/conf.h,v
retrieving revision 1.199
diff -u -r1.199 conf.h
--- conf.h	1998/03/31 12:52:19	1.199
+++ conf.h	1998/04/07 06:20:04
@@ -873,14 +873,6 @@
 #include <regex.h>
 #endif
 
-/* We always include the name-concealer file, even if stealth-mode
- * is off.  This keeps the dependencies the same regardless of the
- * setting of the HIDE rule.  hide.h either does its thing or not
- * internally depending on the rule, so it's safe to include under
- * all circumstances.
- */
-#include "hide.h"
-
 #ifdef HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
 #ifdef SUNOS4
Index: src/modules/standard/mod_so.c
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/modules/standard/mod_so.c,v
retrieving revision 1.17
diff -u -r1.17 mod_so.c
--- mod_so.c	1998/03/31 12:53:21	1.17
+++ mod_so.c	1998/04/07 06:22:43
@@ -230,7 +230,6 @@
     so_server_conf *sconf;
     moduleinfo *modi;
     moduleinfo *modie;
-    char *modname_hidden;
     int i;
 
     /* 
@@ -249,52 +248,6 @@
     modi->name = modname;
 
     /*
-     * NOW COMES THE PROBLEMATIC PART:
-     *
-     * Because of the -DHIDE/hide.h feature of Apache 1.3 we have eight
-     * situations from which four doesn't work at all and four are a bit
-     * different because of the AP_ hiding stuff and the fact that this symbol
-     * hiding applies only to distributed modules.
-     *
-     * Apache ...... means the Apache code itself
-     * S-Module .... means a standard module which is distributed with Apache
-     * C-Module .... means a custom module which is not distributed with Apache
-     * HIDE ........ means -DHIDE was used when compiling
-     * !HIDE ....... means -DHIDE was not used when compiling
-     * xxx ......... means the symbol "<name>_module" of the module structure
-     *
-     *                      Resolving| dlopen()     dlsym()
-     *                               | (implicit)   (explicit)
-     * Situation                     | core->module core<-module
-     * ------------------------------+-----------------------------------
-     * The compatible variants:      |
-     * Apache+!HIDE & S-Module+!HIDE | succeeds     succeeds only w/ xxx
-     * Apache+ HIDE & S-Module+ HIDE | succeeds     succeeds only w/ AP_xxx
-     * Apache+!HIDE & C-Module+!HIDE | succeeds     succeeds only w/ xxx
-     * Apache+ HIDE & C-Module+ HIDE | succeeds     succeeds only w/ xxx  <<==
-     * The incompatible variants:    |
-     * Apache+!HIDE & S-Module+ HIDE | fails        would succeed w/ AP_xxx
-     * Apache+ HIDE & S-Module+!HIDE | fails        would succeed w/ xxx
-     * Apache+!HIDE & C-Module+ HIDE | fails        would succeed w/ xxx
-     * Apache+ HIDE & C-Module+!HIDE | fails        would succeed w/ xxx
-     *
-     * In other words: For the incompatible variants where the Apache core was
-     * built with a different setting than the ones the module was compiled
-     * with, we have no chance at all because the implicit resolving of
-     * Apache's core symbols in dlopen() already fails for the module (because
-     * for instance the module needs palloc while Apache exports AP_palloc).
-     *
-     * So, only for the compatible variants we have a chance. And here we
-     * succeed by always trying to resolve the plain xxx symbol and only for
-     * the case of a distributed standard module we have to resolve via the
-     * AP_xxx variant. Because we cannot decide if the module to be loaded is
-     * a distributed one or a custom one we really have to try both: First for
-     * AP_xxx and if this fails additionally for xxx.
-     *
-     *                                                        -- rse
-     */
-
-    /*
      * Load the file into the Apache address space
      */
     if (!(modhandle = os_dl_load(szModuleFile))) {
@@ -308,17 +261,10 @@
 		"loaded module %s", modname);
 
     /*
-     * Create the symbol variant for the case where
-     * we have to load a distributed module compiled with -DHIDE
-     */
-    modname_hidden = pstrcat(cmd->pool, "AP_", modname, NULL);
-
-    /*
      * Optionally prefix the symbol with an underscore
      * for some platforms.
      */
 #ifdef NEED_UNDERSCORE_SYM
-    modname_hidden = pstrcat(cmd->pool, "_", modname_hidden, NULL);
     modname = pstrcat(cmd->pool, "_", modname, NULL);
 #endif
 
@@ -327,11 +273,9 @@
      * First with the hidden variant (prefix `AP_') and then with the plain
      * symbol name.
      */
-    if (!(modp = (module *)(os_dl_sym (modhandle, modname_hidden)))) {
-	if (!(modp = (module *)(os_dl_sym (modhandle, modname)))) {
-	    return pstrcat(cmd->pool, "Can't find module ", modname,
-			   " in file ", filename, ":", os_dl_error(), NULL);
-	}
+    if (!(modp = (module *)(os_dl_sym (modhandle, modname)))) {
+	return pstrcat(cmd->pool, "Can't find module ", modname,
+		       " in file ", filename, ":", os_dl_error(), NULL);
     }
     modi->modp = modp;
     modp->dynamic_load_handle = modhandle;
Index: src/os/unix/os.h
===================================================================
RCS file: /e/apache/REPOS/apache-1.3/src/os/unix/os.h,v
retrieving revision 1.16
diff -u -r1.16 os.h
--- os.h	1998/03/31 12:53:41	1.16
+++ os.h	1998/04/07 06:23:08
@@ -59,14 +59,6 @@
 #define APACHE_OS_H
 
 /*
- * We can't include conf.h (where the hide.h stuff is done) because it
- * includes us.  So we do the hide.h stuff ourself.
- */
-#ifdef HIDE
-#include "hide.h"
-#endif
-
-/*
  * This file in included in all Apache source code. It contains definitions
  * of facilities available on _this_ operating system (HAVE_* macros),
  * and prototypes of OS specific functions defined in os.c or os-inline.c

Mime
View raw message