On Wed, Mar 21, 2001 at 01:24:34AM +0200, Aivo Kalu wrote:

> Should I try to rebuild everything using dynamic linking ? Does anyone has
> experience doing this with AIX ? I found some letter from comp.os.aix that
> there some problems with using AIX native loader with modules such as
> mod_perl and embperl ?

Yes, it does work, although not without tweaking as newer Apache
distributions switched the way they do dynamic linking and attempting to
do the same with perl/modperl produces trouble without ends that I
still attempt to resolve cleanly (I also did post that article in
comp.unix.aix).

To explain it quickly without much detail: AIX did have dynamic loading
from the beginning, but with its own API not used in any other Unix
variant. Derived from SunOS the dlopen API is quite popular and I did
an emulation layer that emulates dlopen via the AIX native API. This
emulation layer was integrated into quite a few packages, including
Apache, Perl and others. All the Apache/modperl/Embperl stuff works fine
using the emulation layer.

On later AIX versions IBM now included its own implementation of dlopen
on top of the native loading facilities (extending these as well), but
using subtlely different semantics in some points. The Apache developers
think that the IBM dlopen is ok to use from AIX 4.3 onwards, but perl as
of today continues to use the old way, producing conflicts if two
variants of dlopen are in the same process. Also one issue with imports
from multiple parent modules like Embperl importing from both Apache and
modperl in the case that modperl is itself a DSO is still unresolved. As
using the IBM dlopen breaks backwards binary compatibility the patch was
rejected by the Perl maintainers.

So the only way to get it working is to revert the decision in the
Apache source as to when to use the native dlopen or the emulation
layer. change the file src/os/unix/os.c to not check for AIX < 43 to
always include os-aix-dso.c. You also will have to make sure that the
patch for perl itself is installed as per the modperl INSTALL file,
it contains an important bugfix for the DSO case.

-- 
Jens-Uwe Mager

HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany

Phone:          +49 5131 709320
FAX:            +49 5131 709325
Internet:       [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to