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

Re: PATCH: completion

Sven wrote:
> Then one question for the AIX users: I still don't know what the
> `*.export' files are for and what exactly has to go into them, so I
> haven't tried to build or change them. Btw. the `comp1.mdd' contained
> `hasexport=1' which, I think, may have to do with that, but I couldn't 
> find any documentation for it. I have added it to `complete.mdd'
> anyway.

My understanding is that the export files list symbols which are to be
at runtime instead of link-time. It seems to use this to link, for
computil.so with symbols from compctl.so where on other systems, it
would look
in compctl.so to get them.

When the next pws/bart release arrives, I'll sort out the .export files
necessary and send a patch. The following might help explain what the
files are:

The errors I was getting from the C compiler were roughly as follows:

        /bin/cc -qlanglvl=ansi  -s  -o computil.so
ort -bI:../../Src/Zle/zle.export -bI:../../Src/zsh.export  -emodentry
o  ../../Src/modentry..o -lcurses -lm -lc 
0706-317 ERROR: Unresolved or undefined symbols detected:
                 Symbols in error (followed by references) are
                 dumped to the load map.
                 The -bloadmap:<filename> option will create a load map.
make: 1254-004 The error code from the last command is 8.

Note that all the .o files have two dots (e.g. modentry..o) when
building on
AIX. This is probably a mistake somewhere but it has always compiled
happily so
I've never bothered.

I've cut out the relevant parts of the ld man page here. I can send you
whole thing if you want.

  Imports lists identify which external symbols are to be resolved
  during run time, instead of being resolved during the linkage ed-
  itor  process.   The import list generally identifies the execut-
  able object file  that contains the definition of the import sym-
  bol, so the loader can find  and resolve that symbol at run time.
  The information needed to resolve import  references  is found in
  one of two places:
  *     The loader section of shared object files
  *     Files whose first record begins with the #! (pound sign and
  exclamation point) that contain a list of external symbols. These
  files are called import lists.
  Export lists identify external symbols that are to be made avail-
  able for another executable object file to import.  The file for-
  mat of an export list is the same as the file format of an import
  -bOption      Sets binder (ld) special control and processing options.
  See the following section on  binder options.  This flag can be
  import:FileID or I(the uppercase letter i):FileID     The binder im-
  ports the external symbols specified in the FileID variable.
  There is no default import file.

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