Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Shared libraries on IRIX



I hadn't been able to get shared libraries to work on IRIX and I
think the following, from the dlopen(3) manual, was the problem.

     Objects loaded by a single invocation of dlopen may import symbols from
     one another or from any object loaded automatically during program
     startup, but objects loaded by one dlopen invocation may not directly
     reference symbols from objects loaded by a different dlopen invocation.
     Those symbols may, however, be referenced indirectly using dlsym.

This fits in with my experiences: problems happen when the zle module
is loaded, which depends on another module, comp1.  The latter loads
all right but zle starts acting strangely straight away (the address
for the init routine is not sensible) and the shell crashes on entry
to zleread().

Looking at the code in the light of this, it will make things very
hard for zle add-on modules even if zle were loaded in one go.  I
suspect that (for IRIX and perhaps others) it's going to be necessary
to have zle hard-wired, at least until it's possible to restrict
modules to a pre-defined set of hooks into zle.

Anyway, I added comp1 and zle to modules-bltin by hand and everything
else seems fine with dynamic loading.  This should therefore become
the default for IRIX, even with --dynamic; I couldn't see code for it
in configure.in, though.

-- 
Peter Stephenson <pws@xxxxxx>       Tel: +49 33762 77366
WWW:  http://www.ifh.de/~pws/       Fax: +49 33762 77413
Deutsches Elektronen-Synchrotron --- Institut fuer Hochenergiephysik Zeuthen
DESY-IfH, 15735 Zeuthen, Germany.



Messages sorted by: Reverse Date, Date, Thread, Author