dougm 00/04/02 20:56:12
Modified: . Changes INSTALL Makefile.PL
Log:
updated dso+aix Perl patch
Revision Changes Path
1.454 +3 -0 modperl/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/modperl/Changes,v
retrieving revision 1.453
retrieving revision 1.454
diff -u -r1.453 -r1.454
--- Changes 2000/04/03 03:40:35 1.453
+++ Changes 2000/04/03 03:56:11 1.454
@@ -10,6 +10,9 @@
=item 1.22_01-dev
+updated dso+aix Perl patch
+[Jens-Uwe Mager <[EMAIL PROTECTED]>]
+
warn that dso+Perl malloc needs a Perl built with -Ubincompat5005
add Apache::BINMODE stub for 5.6.0 tied filehandle support (fixes cgi.t #4)
1.14 +42 -2 modperl/INSTALL
Index: INSTALL
===================================================================
RCS file: /home/cvs/modperl/INSTALL,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- INSTALL 2000/03/09 20:21:15 1.13
+++ INSTALL 2000/04/03 03:56:11 1.14
@@ -345,8 +345,35 @@
following patch to perl 5.005_3 does fix that problem:
--- perl5.005_03/ext/DynaLoader/dl_aix.xs.orig Fri Mar 3 17:00:58 2000
- +++ perl5.005_03/ext/DynaLoader/dl_aix.xs Fri Mar 3 17:06:51 2000
- @@ -222,7 +222,16 @@
+ +++ perl5.005_03/ext/DynaLoader/dl_aix.xs Sun Apr 2 13:37:05 2000
+ @@ -74,8 +74,8 @@
+ } Module, *ModulePtr;
+
+ /*
+ - * We keep a list of all loaded modules to be able to call the fini
+ - * handlers at atexit() time.
+ + * We keep a list of all loaded modules to be able to reference count
+ + * duplicate dlopen's.
+ */
+ static ModulePtr modList;
+
+ @@ -88,7 +88,6 @@
+
+ static void caterr(char *);
+ static int readExports(ModulePtr);
+ -static void terminate(void);
+ static void *findMain(void);
+
+ static char *strerror_failed = "(strerror failed)";
+ @@ -165,7 +164,6 @@
+ if (!mainModule) {
+ if ((mainModule = findMain()) == NULL)
+ return NULL;
+ - atexit(terminate);
+ }
+ /*
+ * Scan the list of modules if have the module already loaded.
+ @@ -222,7 +220,16 @@
mp->refCnt = 1;
mp->next = modList;
modList = mp;
@@ -364,6 +391,19 @@
dlclose(mp);
errvalid++;
strcpy(errbuf, "loadbind: ");
+ @@ -336,12 +343,6 @@
+ safefree(mp->name);
+ safefree(mp);
+ return result;
+ -}
+ -
+ -static void terminate(void)
+ -{
+ - while (modList)
+ - dlclose(modList);
+ }
+
+ /* Added by Wayne Scott
Please make sure that you rebuild both perl and mod_perl after applying
this patch.
1.155 +61 -20 modperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/modperl/Makefile.PL,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -r1.154 -r1.155
--- Makefile.PL 2000/04/03 03:49:38 1.154
+++ Makefile.PL 2000/04/03 03:56:11 1.155
@@ -2096,25 +2096,66 @@
EOF
warn <<EOF;
---- perl5.005_03/ext/DynaLoader/dl_aix.xs.orig Fri Mar 3 17:00:58 2000
-+++ perl5.005_03/ext/DynaLoader/dl_aix.xs Fri Mar 3 17:06:51 2000
-@@ -222,7 +222,16 @@
- mp->refCnt = 1;
- mp->next = modList;
- modList = mp;
-- if (loadbind(0, mainModule, mp->entry) == -1) {
-+ /*
-+ * Assume anonymous exports come from the module this dlopen
-+ * is linked into, that holds true as long as dlopen and all
-+ * of the perl core are in the same shared object. Also bind
-+ * against the main part, in the case a perl is not the main
-+ * part, e.g mod_perl as DSO in Apache so perl modules can
-+ * also reference Apache symbols.
-+ */
-+ if (loadbind(0, (void *)dlopen, mp->entry) == -1 ||
-+ loadbind(0, mainModule, mp->entry) == -1) {
- dlclose(mp);
- errvalid++;
- strcpy(errbuf, "loadbind: ");
+--- perl5.005_03/ext/DynaLoader/dl_aix.xs.orig Fri Mar 3 17:00:58 2000
++++ perl5.005_03/ext/DynaLoader/dl_aix.xs Sun Apr 2 13:37:05 2000
+@@ -74,8 +74,8 @@
+ } Module, *ModulePtr;
+
+ /*
+- * We keep a list of all loaded modules to be able to call the fini
+- * handlers at atexit() time.
++ * We keep a list of all loaded modules to be able to reference count
++ * duplicate dlopen's.
+ */
+ static ModulePtr modList;
+
+@@ -88,7 +88,6 @@
+
+ static void caterr(char *);
+ static int readExports(ModulePtr);
+-static void terminate(void);
+ static void *findMain(void);
+
+ static char *strerror_failed = "(strerror failed)";
+@@ -165,7 +164,6 @@
+ if (!mainModule) {
+ if ((mainModule = findMain()) == NULL)
+ return NULL;
+- atexit(terminate);
+ }
+ /*
+ * Scan the list of modules if have the module already loaded.
+@@ -222,7 +220,16 @@
+ mp->refCnt = 1;
+ mp->next = modList;
+ modList = mp;
+- if (loadbind(0, mainModule, mp->entry) == -1) {
++ /*
++ * Assume anonymous exports come from the module this dlopen
++ * is linked into, that holds true as long as dlopen and all
++ * of the perl core are in the same shared object. Also bind
++ * against the main part, in the case a perl is not the main
++ * part, e.g mod_perl as DSO in Apache so perl modules can
++ * also reference Apache symbols.
++ */
++ if (loadbind(0, (void *)dlopen, mp->entry) == -1 ||
++ loadbind(0, mainModule, mp->entry) == -1) {
+ dlclose(mp);
+ errvalid++;
+ strcpy(errbuf, "loadbind: ");
+@@ -336,12 +343,6 @@
+ safefree(mp->name);
+ safefree(mp);
+ return result;
+-}
+-
+-static void terminate(void)
+-{
+- while (modList)
+- dlclose(modList);
+ }
+
+ /* Added by Wayne Scott
+
EOF
}