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
   }
  
  
  

Reply via email to