Mailing List Archive

cvs commit: apache-1.3/src README.DSO
rse 98/04/15 23:44:46

Modified: . INSTALL
src README.DSO
Log:
Make sure the user is notified about the possible side-effects LoadModule can
have because of the different execution order of modules.

Revision Changes Path
1.12 +3 -1 apache-1.3/INSTALL

Index: INSTALL
===================================================================
RCS file: /export/home/cvs/apache-1.3/INSTALL,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- INSTALL 1998/04/15 06:51:27 1.11
+++ INSTALL 1998/04/16 06:44:44 1.12
@@ -94,7 +94,9 @@
installed from which Apache can guess the options.

For more in-depth information about DSO support in Apache 1.3 please
- read the file src/README.DSO.
+ read the file src/README.DSO carefully. Especially the section
+ entitled "Advantages & Disadvantages" because using the DSO mechanism
+ can have strange side-effects if you are not carefully. BE WARNED!

3. Configuring the source tree
---------------------------



1.4 +21 -0 apache-1.3/src/README.DSO

Index: README.DSO
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/README.DSO,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- README.DSO 1998/04/14 10:51:39 1.3
+++ README.DSO 1998/04/16 06:44:45 1.4
@@ -264,6 +264,27 @@
complicated assembler tricks for relative addressing which are not
necessarily as fast as absolute addressing.

+ - As of Apache 1.3 the in-core list of active modules is not priorized.
+ Instead it is just the list of statically linked modules in reverse order
+ as found in the src/Configuration* file (the list is constructed by
+ adding modules to the top, i.e. later in the config means earlier in the
+ list and thus results in higher priority). But DSO-based modules are
+ added to this in-core list of modules under run-time _after_ the
+ statically linked modules were already added. They are added again in
+ reverse order, i.e. each `LoadModule' command inserts the module again at
+ the top of the list. But because the list is not priorized the two parts
+ (statically linked modules and run-time loaded modules) are _NEVER_
+ merged. They are just connected together but not sorted as a whole.
+
+ In other words: When a module is compiled as a DSO it automatically
+ results in a higher priority than any statically compiled modules. This
+ can have strange side-effects because of different execution order. As a
+ consequence the rule of thumb is this: Either compile all modules
+ statically or all modules as DSO (--enable-shared=max) when you want to
+ avoid side-effects. And only compile just a subset of modules as DSO when
+ you are sure the different execution order has no side-effects for your
+ configuration. BE WARNED!
+
- Because DSO modules cannot be linked against other DSO-based libraries
(ld -lfoo) you cannot use the DSO mechanism for all types of modules. Or
in other words, modules compiled as DSO files are restricted to only use