che358w@vaxc.cc.monash.edu.au (05/31/91)
This is porbably the wrong place to post this but.. I have compiled a large fortran program with xlf on the RISC 6000. If I us xlf -cC <filename> and then link everything is fine (except the program doesn't give the right answers). However, if I use xlf -cC -qextchk <filname> and then link I get an error number and then type mis matches detected by RESOLVE. see error messages under RESOLVE for more information. What is RESOLVE ? Where can I find documentaion on it ? Can I make it give more specific information like where the type mismatch occurs ? Thanks in advance for any advice. Samantha Lane
jaime@excalibur.austin.ibm.com (06/01/91)
In article <1991May31.165041.86819@vaxc.cc.monash.edu.au>, che358w@vaxc.cc.monash.edu.au writes: > Path: awdprime!auschs!romp!cs.utexas.edu!sdd.hp.com!spool.mu.edu!uunet!munnari .oz.au!bruce!monu0.cc.monash.edu.au!vaxc.cc.monash.edu.au!che358w > From: che358w@vaxc.cc.monash.edu.au > Newsgroups: comp.unix.aix > Subject: xlf and RESOLVE on RISC 6000. What is it ? > Message-ID: <1991May31.165041.86819@vaxc.cc.monash.edu.au> > Date: 31 May 91 06:50:40 GMT > Organization: Computer Centre, Monash University, Australia > Lines: 17 > > This is porbably the wrong place to post this but.. > I have compiled a large fortran program with xlf on the RISC 6000. If I > us xlf -cC <filename> and then link everything is fine (except the program > doesn't give the right answers). However, if I use xlf -cC -qextchk <filname> > and then link I get an error number and then type mis matches detected by RESOLVE. > see error messages under RESOLVE for more information. > > What is RESOLVE ? > > Where can I find documentaion on it ? > > Can I make it give more specific information like where the type mismatch occurs > ? > > Thanks in advance for any advice. > > Samantha Lane When you specify -qextchk, the compiler places hash values in the symbol table that describes the types of the external references and passed parameters. The default is not to do this. The linker uses this information to determine if ther are type mismatches with the symbols. This is done during the RESOLVE phase of the bind, which explains your message. In order to see the specific errors, you must specify that a loadmap be generated for the link. Message output to this effect should have been generated by the link. To create a loadmap, add the following compiler/linker (it's passed to the link step) option to your compile: -bloadmap:<file-name> The look in the file (use your favorite editor/browser) and look for resolve in the file. It will indicate the failure of the program. It will show the symbol(s) in error and what files they came from. This easily explains why you are getting invalid results. As an example, main could be calling foo using an integer parameter but foo is expecting a float. BTW, this functionality is available from the C compiler as well. -------------------------------------------------------------------- Jaime Vazquez Voice: 512-838-4829 or t/l 678-4829 AIX Technical Support Fax: 512-838-4851 or t/l 678-4851 IBM AWD-Austin/2830 6000: jaime@excalibur.austin.ibm.com InterNet: jaime@austin.vnet.ibm.com or jaime%austin@vnet.ibm.com -------------------------------------------------------------------- <Standard disclaimers apply.>