extra lib member not found by ld when -g used.

extra lib member not found by ld when -g used.

Post by Christopher Grayc » Fri, 25 Jul 1997 04:00:00



Hi all:

System: Digital Unix 3.2C on AlphaStation 600.
Compiler: stock Digital C compiler/loader version 3.11

I am compiling C source and linking against several libraries
of my own.  The libraries have been compiled with these flags:

-O4 -D_FASTMATH -migrate -ansi_alias -inline speed -ifo -tune ev5 -assu
me noaccuracy_sensitive -std1

If I compile the program with the same flags, all is well.  If I
use -g, however (so I can debug it), I get this loader error:

ld:
Unresolved:
_OtsMove
*** Exit 1
Stop.

and indeed, an "nm" on one of the libraries turns up an entry for
_OtsMove.  Needless to say none of my programs have that name.

My question:  what is _OtsMove?  Why does the loader find it if
I use the optimizing flags and not without?  How can I avoid this
problem *without* recompiling the libraries?  (I don't need to
debug 'em, I know they work.)

Any help appreciated.

Christopher Grayce
UCI Department of Chemistry

*** Return address bogus to avoid spammail: send replies
    to cgrayce (at) uci (dot) edu ***

 
 
 

extra lib member not found by ld when -g used.

Post by Ron Natali » Fri, 25 Jul 1997 04:00:00


OtsMove is defined in -lots.

I don't know what the difference is (since you don't show your
link options), but I suspect that it's undefined in both cases
except that you're not fatal without -g because unresolved
symbols are deferred at compile time when you don't use it.

 
 
 

extra lib member not found by ld when -g used.

Post by Craig Neth US » Sat, 02 Aug 1997 04:00:00



> My question:  what is _OtsMove?  Why does the loader find it if
> I use the optimizing flags and not without?  How can I avoid this
> problem *without* recompiling the libraries?  (I don't need to
> debug 'em, I know they work.)

> Any help appreciated.

> Christopher Grayce
> UCI Department of Chemistry

> *** Return address bogus to avoid spammail: send replies
>     to cgrayce (at) uci (dot) edu ***

--

_OtsMove is part of the compiled code support for the -migrate
C compiler.  It lives in libots.   At -lots to your link line
to satisfy the reference.

In V4.0, we changed the default C compiler to be the -migrate compiler
so you don't need to add -lots if you're on V4.0 or later.

--------------------------------------------------------------------------------

DIGITAL Equipment Corporation      !
110 Spit Brook Road ZKO3-3/W17     !
Nashua, NH 03062                   ! Opinions expressed herein are my own.
================================================================================