nts to reduce the problem case to something more
simple.
If you have your build environment under control (all modules build
using a coherent set of compilers and build flags) and want a very
flexible solution with the same set of binaries on multiple hosts DSO's
work fine, I use it all th
er defines and options, with the worst case
being the attempt to use different compilers. The perl developers for
example did construct their build system for DSO's very reasonably, and
they do fix compiler and options for plug-ins very rigorously.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
e heck
is this ExtractorPro thing?
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
to produce an error if there is a
path info for a script that is not supposed to have one.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
e are few
people that do really statically link in the system libraries into their
programs (if that is possible at all on the machine in question).
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
uld *not* be dlclosed, EVEN IF THEY ARE NO LONGER IN THE CONFIG
> FILE!!!
I believe they did that on purpose, akin to the line let's see if we
survive a complete restart as via apachectl restart.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone:
at Jens Uwe
> wrote to me in the FAQ
>
> http://perl.apache.org/embperl/Faq.pod.1.html#Embperl_and_mod_perl_on_AIX
>
> he also sends the patches to build Embperl on AIX, maybe he (or anybody else
> on the list) has more ideas what's going wrong
I appear to have missed the initial post, what
with gcc's command line options. The
perl module build system remembers all compiler options used to
configure perl and re-applies these upon compiling perl modules. To use
modperl you must compile all parts of the equation (apache, perl,
modperl other perl modules) with exactly the same c
think something along the
lines of:
CC="xlc -D_ALL_SOURCE" ./configure ...
will do. I always add the -D_ALL_SOURCE so packages find the available
but by default invisible extented BSD style functions without saying I
want a pure BSD environment.
--
Jens-Uwe Mager
HELI
barfs as it does not know
that flag. You will need to compile everything using he same compiler,
e.g. all with gcc or all with xlc. Especially perl modules need to use
the exactly same compiler and flags as used in compiling the main perl.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
ore or
less is like ELF dynamic linking used under Linux or Solaris. Both
Apache and Perl are only doing the classic AIX style dynamic linking, so
you cannot use the Linker Option -G to turn on runtime linking for a
module, you must use the -bE:export file -bM:SRE options instead. The
option -berok
dules
on AIX, so you pretty much have only one choice, namely use the IBM C
compiler. I had more than one problem with gcc over the years, so I
believe both compilers are on par problem wise. The IBM C compiler
appears to produce much better code on POWER/PowerPC machines, so I
stick with it.
--
Jen
bI:/usr/local/apache/libexec/httpd.exp
missing in the above linker command line. I would suspect that the
embperl Makefile.PL could use an overhaul and use the new features of
Apache::src to find the flags needed for linking a plug-in that needs to
link both against perl and httpd.
I also would r
as one global space. The AIX linker does not do that, it does
explicitely require you to specify which global symbols enter the
inter-module name space through the use of .exp files. If you link in
global symbols from some .o files these are not global symbols for other
shared objects unless being m
erent on AIX than on linux with gnutools. (Hey what happened to gcc
> --shared? :-)
I do not use gcc on AIX, I would believe that attempting to build
anything that uses the more esoteric linker options that start with -b
to royally screw up gcc.
--
Jens-Uwe Mager
HELIOS Software Gmb
t; make: *** [test_dynamic] Error 255
Well this surely looks like your Apache main part does not export the
symbols in question, does a dump -nv httpd list the symbols in question
like this?
[207] 0x20007458.data EXP DS SECdef[noIMid] ap_table_set
--
Jens-Uwe Mager
H
mpting to load the Embperl into a plain perl
interpreter, which will not work as it does not support the Apache
symbols. I have to confess to have never run the test, it did always
complain about some packages I do not have installed and thus I tested
it in a live server with a set of my own pa
"/httpd.exp";
- push @ldflags, "-bI:$httpdexp" if -e $httpdexp;
+ if (-e $httpdexp) {
+ push @ldflags, "-bI:$httpdexp";
+ } else {
+ $httpdexp = $self->dir . "/support/httpd.exp";
+ push @ldflags, "-bI
he
> > following patch to perl 5.005_3 does fix that problem:
> >
> Is there a Perl 5.6 patch available ?
Yes, I submitted it to perl5-porters in the hope that it would be
included, but I was probably late by a day or so for the perl 5.6
release.
--
Jens-Uwe Mager
HELIOS Software G
in
> particular the apache install dir, and libs dirs.)
The link line is missing the import files for modperl and apache, You
can find out the needed extra command line switches from modperl:
$ perl -MApache::src -le 'print Apache::src->new->otherldflags;'
-bI:/usr/local/lib/
iles. If you want to avoid fighting against different
compiler option syntaxes for specifying the linker options to link
plug-in modules you should compile all of the modules that should end up
in one process using one and only one compiler.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
3
e. If that still
does not work, I would need to examine the exact link command line and
the output of "dump -nv AuthenKerberos.so".
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
w weeks to get the server memory footprint back
to normal.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
test mod_perl and apache from CVS (as of June 9, 2000 at least).
There are a few patches necessary that must be applied to the _perl_
distribution to fix bugs I did in the original dl_aix.xs from perl
around 1992 or so. But the latest CVS versions work fine on my AIX
boxes.
--
Jens-Uwe Mager
HEL
> use perl 5.6 as well - but ran into more problems (unrelated?) then I had
> w/ 5.00503.
That is strange - what kind of errors do you get?
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
> and the other - I am assuming this is something random and
> circumstantial.)
I use the following for configuring mod_perl:
perl Makefile.PL USE_APXS=1 EVERYTHING=1 WITH_APXS=/usr/local/apache/bin/apxs
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
On Tue, Jul 25, 2000 at 11:57:56PM +0200, Jens-Uwe Mager wrote:
> >From the last post from you I have you appeared to use mod_perl-1.22.
> What exactly have you been using?
Oops - I did misread, you said you are using 1.24.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
3082
ccessx(): A file or directory in the path name does not exist.
Oops, the build process appears to be rather broken in the AIX case
without APXS, this needs fixing. Does anybody know why there are so many
ways to build mod_perl? And what is actually the most important way to
build it? I always assumed
install Apache with module support):
perl Makefile.PL USE_APXS=1 EVERYTHING=1 \
WITH_APXS=/usr/local/apache/bin/apxs
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
plain perl?
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
I am trying to do an anon cvs update of modperl and it appears to hang
without doing anything. I can cvs upd other projects. Could anyone try
that and look if it works?
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49
hared=include"
I also tested the build procedure using the apxs tool like this:
perl Makefile.PL USE_APXS=1 EVERYTHING=1 WITH_APXS=/usr/local/apache/bin/apxs
this still works but has the problem of the memory leak at server
restart.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
308
ms. You can simply try to add these to the aix case
in makedef.pl (of the perl-5.6.0 distribution) by adding some
emit_symbol statements with Perl_whichsig and Perl_rsignal_state and
rebuilding perl.
Ultimately this should be checked with the [EMAIL PROTECTED]
mailing list.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
those folks that build their perl from sources,
e.g. by downloading the .tar.gz file from CPAN.
To find out if you have the problem you will need to use a perl XS
module that also needs to reference symbols from the Apache core, for
example HTML::Embperl or libapreq. These modules will dump core
witho
pass email addresses on command
lines. This is much more secure and relies instead on sendmail's rather
largish machinery to parse email adresses.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
et
strange errors otherwise:
--- src/support/httpd.exp.orig Wed Mar 1 16:35:34 2000
+++ src/support/httpd.exp Wed Mar 1 16:35:42 2000
@@ -1,4 +1,4 @@
-#! .
+#!
ap_MD5Encode
ap_MD5Final
ap_MD5Init
> Perl-5.6.0 with AIX patch distributed by Jens-Uwe Mager on this list
> a few month
d_perl is compiled as a
DSO, httpd will completely unload and reload all DSO's on a restart and
cause all global/static variables to be reset to NULL, forgetting all
traces about previously allocated memory. If mod_perl is built
statically, it will not be reloaded and thus all global/static variables
together. I am wondering if other folks that embed perl
interpreters into their applications are having similar problems. I
would believe that is a general perl bug.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 7
che.org/docs/dso.html"
Wait a sec, not _Apache DSO's_ in general are experimental, these appear
to work quite fine. The problem is with mod_perl as a DSO, that is one
particular Apache module that has the problem. And this is probably not
even mod_perl's fault but the way perl itself is
can easily increase the value, or remove it
> altogether. Any recommendations?"
I do not think that this is a problem, as if a client dies after it has
done it's number of requests it will not load and reload all DSO's, it
will just fork a fresh copy of the master and be done with it. I thin
r
> with Dec Unix?
Well, that strace under DEC Unix is not what you think, it is a System V
streams trace utility. As far as I know there is no system call trace
utility on DEC Unix.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:
he perl build procedure was done using the
IBM C compiler and it adds -bE:/path/to/perl.exp to the command line to
build perl, but this compiler option means something completely
different to gcc, causing the strange error. If you want to use gcc to
build mod_perl, you will also have to use gcc to
and perl moduless built using a exactly the same compiler and a
coherent set of compiler flags.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL
lib/E:./modules/perl/mod_perl.exp/egcs-2.91.60/'
> never used
> make: The error code from the last command is 1.
You must compile all of perl, mod_perl and apache using the same
compiler. In your case perl was compiled using the IBM C compiler, and
the perl build procedure introduces co
n support,regex. directories
> but terminated prematually with warning message for "Apache Version 1.3.0
> required, aborting.."
Use the cvs version of mod_perl or one of the recent snapshots, the
version number definition in Apache changed recently causing confusion
in older mod_per
n can also be fetched
from an FTP archive, but for development versions this is a bit painful.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
retrieve these flags if needed.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
Index: Cookie/Cookie.xs
info($stat); #changed size will be reflected in dirindex output
> 0;
> }
Wow! Thanks for making that available, it exactly does what I wanted. I
just patched my modperl with the patch and also installed Sys::Stat and
use the new module in my MacBinary fixup handler and it works beautifully.
$package,
';',
$line,
$$code,
"\n",
);
$pr->{'sub'} = \$sub;
}
1;
That way I can try my perl content handlers by just commenting out the
package statement just like
nly once for each function it appears in)
This symbol was only used for a short while from modperl until it was
found that this is supposed to be a private Apache symbol. I believe
1.24_1 does not use it anymore, so upgrade modperl to a newer version.
--
Jens-Uwe Mager
HELIOS Software GmbH
S
ably, so
most people turned it off. If this still applies today, I have no idea.
I still know a few platforms that do not support loading C++ code from a
loadable plug-in (dll, shared object) if the main program is not a C++
program.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Gar
compiler, that
means in the modperl case all of Apache, Apache plug-ins, perl and perl
plug-ins should be compiled using the Sun Workshop C compiler. Mixing
compilers arbitrarily is asking for trouble.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
arises causing Apache module loads to
fail.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
n old S5R4 machines you must build perl with
a shared core.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
01
@@ -165,7 +165,7 @@
---EOP---
}
elsif ($PLATFORM eq 'aix') {
-print "#!\n";
+print "#! .\n";
}
my %skip;
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
bably need to change the modperl.exp file to include the magic "#! ."
instead of simply "#!" at the beginning, this signals the native dlopen
to import symbols from the main program. The patch already does that in
makedef.pl for the perl.exp file, but only on AIX 4.3 and above because
ulation I did in the past handled that differently. The dot thing
means importing from the main program, whereas before without the dot it
meant import later by use of the loadbind() system call explicetely. But
the native dlopen from AIX does not use loadbind(), so the old plug-ins
references ba
build modperl with a different C compiler than perl itself,
this is not going to work. Especially the gcc command line options are
different enough from the ones the IBM C compiler understands, and the
modperl build procedure relies on the values recorded at the time perl
was build.
--
Jens-Uwe Mager
H
Zend -I/usr
> /local/sources/php/php-4.0.4pl1 -DUSE_EXPAT -I../../lib/expat-lite
> -DNO_DL_NEEDED `../../apaci` -c mod_perl.c
> /bin/sh: -I: not found.
That is pretty strange. What does the following command produce on your
machine:
perl -MConfig -le 'print $Config{"cc"};&
The error code from the last command is 1.
The perl executable was build using the IBM C compiler and you attempt
to build modperl with gcc, this does not work as both must be build
using the same compiler. You will have to rebuild
perl if you want to use gcc.
--
Jens-Uwe Mager
HELIOS Software
On Tue, Mar 13, 2001 at 05:57:20PM -0800, Gurusamy Sarathy wrote:
> There is a change in behavior here that looks somewhat suspect
> because the comments didn't mention it.
>
> >On Wed, Feb 21, 2001 at 09:32:04PM +0100, Jens-Uwe Mager wrote:
> >> +#ifdef USE_NATI
press::Zlib::crc32(substr($buf, 0, $len), $o->{crc});
$o->{len} += $len;
return $len;
}
sub CLOSE {
my ($o) = @_;
return if !defined( $o->{dh});
my ($buf) = $o->{dh}->flush();
$buf .= pack("V V", $o->{crc}, $o->{len});
does keep its global variable
allocations around. It probably needs a function that destroys all it's
global allocations.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
ntion here a few days ago and all should work
fine.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
hem) that my httpd grows bigger and
> bigger as time passes. My mod_perl is a DSO (I run two copies of httpd,
> one without mod_perl and one with; I set it up as a DSO since this way I
> only need one executable). Should I recompile it statically linked?
I had the same problems, afte
PGP message
perl delivered with AIX, you
will have to install your own local perl version. You may get around
compiling apache itself by using the rtl_enable command on the httpd
executable, as the patch for Apache does just that but at compile time.
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
3082
gt; point).
The problem is perl itself here - it is probably compiled using xlc.
Just run perl -V and look at the output. If you want to build Apache and
modperl using gcc than you _must_ also build perl using gcc. This means
you can not use the perl which is part of AIX, as this is built using
xlc
e.
The patch is in three parts and can be found at:
<http://www.han.de/~jum/aix/>
download the following files:
apache_1.3.19.rtl.patch
modperl.rtl.patch
perl-5.6.1.dlopen.patch
The apache_1.3.19.rtl.patch does also apply to 1.3.20 cleanly.
--
Jens-Uwe Mager
HELIOS Softwar
file is less than helpful, and
> a search of the modperl archives didn't find anything.
Did you make install modperl yet?
--
Jens-Uwe Mager
HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany
Phone: +49 5131 709320
FAX:+49 5131 709325
Internet: [EMAIL PROTECTED]
On Tue, Jul 17, 2001 at 11:08:43AM +0100, Alan Burlison wrote:
> Jens-Uwe Mager wrote:
>
> > Did you make install modperl yet?
>
> Yes, via APXS. mod_perl is installed and works just fine. I can see the
> missing mod_perl.h file in the modperl build directory, but it does
ile your perl with gcc. As mod_perl picks up the compiler
settings from the perl installation you must first compile perl with the
proper compiler. But IBM does ship perl compiled using their compiler,
so if you are lazy and do not recompile perl you are hosed.
--
Jens-Uwe Mager
HELIOS Software
72 matches
Mail list logo