perl-modperl-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From do...@locus.apache.org
Subject cvs commit: modperl INSTALL Changes Makefile.PL
Date Thu, 09 Mar 2000 20:21:17 GMT
dougm       00/03/09 12:21:17

  Modified:    .        INSTALL Changes Makefile.PL
  Log:
  warn aix-apxs-5.005_03 users of the patch needed for DynaLoader
  
  Revision  Changes    Path
  1.13      +30 -0     modperl/INSTALL
  
  Index: INSTALL
  ===================================================================
  RCS file: /home/cvs/modperl/INSTALL,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- INSTALL	1999/12/21 15:58:57	1.12
  +++ INSTALL	2000/03/09 20:21:15	1.13
  @@ -338,6 +338,36 @@
   before any other directory containing a version of httpd, then
   call it as 'httpd' -- don't use a relative path!
   
  +=item AIX users
  +
  +If you build mod_perl as a DSO you will get core dumps as soon as you
  +try to use xs modules in perl, e.g. use Fcntl or use Socket. The
  +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 @@
  +		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: ");
  +
  +Please make sure that you rebuild both perl and mod_perl after applying
  +this patch.
  +
   =item more info
   
   Type 'perldoc mod_perl' for info on configuring, running
  
  
  
  1.420     +3 -0      modperl/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/modperl/Changes,v
  retrieving revision 1.419
  retrieving revision 1.420
  diff -u -r1.419 -r1.420
  --- Changes	2000/03/09 20:07:24	1.419
  +++ Changes	2000/03/09 20:21:15	1.420
  @@ -10,6 +10,9 @@
   
   =item 1.21_03-dev
   
  +warn aix-apxs-5.005_03 users of the patch needed for DynaLoader
  +[Jens-Uwe Mager <jum@helios.de>]
  +
   fixup the output of apxs -q CFLAGS to preserve quoting
   [Sheldon Hearn <sheldonh@uunet.co.za>]
   
  
  
  
  1.145     +29 -0     modperl/Makefile.PL
  
  Index: Makefile.PL
  ===================================================================
  RCS file: /home/cvs/modperl/Makefile.PL,v
  retrieving revision 1.144
  retrieving revision 1.145
  diff -u -r1.144 -r1.145
  --- Makefile.PL	2000/03/07 03:12:36	1.144
  +++ Makefile.PL	2000/03/09 20:21:16	1.145
  @@ -2021,6 +2021,35 @@
      *) Switch to an os other than $^O
   EOF
         }
  +
  +    if ($^O eq 'aix' and $] <= 5.00503 and ($USE_DSO or $USE_APXS)) {
  +    	phat_warn(<<EOF);
  +Please make sure that you apply the following patch to the perl
  +distribution before you install mod_perl, without this patch you will
  +not be able load any xs modules.
  +
  +--- 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: ");
  +EOF
  +    }
   }
   
   sub gdbm_check {
  
  
  

Mime
View raw message