From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8590 invoked from network); 26 Oct 1999 13:01:50 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 26 Oct 1999 13:01:50 -0000 Received: (qmail 16004 invoked by alias); 26 Oct 1999 13:01:41 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 8425 Received: (qmail 15997 invoked from network); 26 Oct 1999 13:01:38 -0000 Message-ID: <3815A627.19C7F2A@u.genie.co.uk> Date: Tue, 26 Oct 1999 14:01:27 +0100 From: Oliver Kiddle X-Mailer: Mozilla 4.7 [en] (Win95; I) X-Accept-Language: en MIME-Version: 1.0 To: Zsh workers Subject: Re: PATCH: completion Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 resolved at runtime instead of link-time. It seems to use this to link, for example 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 if 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 -bI:../../Src/Zle/compctl.exp ort -bI:../../Src/Zle/zle.export -bI:../../Src/zsh.export -emodentry computil.. 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: option will create a load map. incompfunc compwords compcurrent .ignore_suffix compprefix compsuffix .restrict_range .ignore_prefix .set_list_array .get_user_var 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 the 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 list. ---- -bOption Sets binder (ld) special control and processing options. See the following section on binder options. This flag can be repeated. ---- 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.