xlf and RESOLVE on RISC 6000. What is it ?

jaime at excalibur.austin.ibm.com jaime at excalibur.austin.ibm.com
Sat Jun 1 05:38:41 AEST 1991


In article <1991May31.165041.86819 at vaxc.cc.monash.edu.au>,
che358w at 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 at vaxc.cc.monash.edu.au
> Newsgroups: comp.unix.aix
> Subject: xlf and RESOLVE on RISC 6000. What is it ?
> Message-ID: <1991May31.165041.86819 at 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 at excalibur.austin.ibm.com          
InterNet: jaime at austin.vnet.ibm.com  or jaime%austin at vnet.ibm.com
--------------------------------------------------------------------
<Standard disclaimers apply.>



More information about the Comp.unix.aix mailing list