3 Mar 2001 jum   » (Master)

In my ongoing effort to make perl/apache/modperl work well together under AIX I did follow the lead of the apache developers to switch over to the AIX native dlopen instead of using my proven emulation using load() and loadbind()if the AIX version is 4.3 or above. Actually I did have some indication that using the native dlopen in apache and the emulation in modperl did produce conflicts. I thus patched perl (and submitted the patch) to use the native dlopen and it worked fine in my configuration.

Unfortunately it does not work if modperl itself is a DSO to apache, as the native dlopen has no sane way to backreference symbols in the parent, it can only easily backreference to the main part, e. g. Apache. Both apache and perl use dlopen with the RTLD_GLOBAL option to add symbols of loaded plug-ins to the global group, and all other dlopen implementations to resolve references to the global group upon loading further shared objects. The AIX dlopen cannot do that, it can only reference symbols in the real main part, so only the apache symbols are available and not the perl ones. Sigh.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!