Re: unresolved symbol

New Message Reply Date view Thread view Subject view Author view

From: Brian Corrie (bcorrie++at++origin1.imti.nrc.ca)
Date: 05/24/2001 08:41:26


Hello Ken, et. al.

> I have -fullwarn as a CC option but got no warning about iopen
> being UNDEF (as are 420 other symbols in my copy of libpf.so),
> so unless I should be using a different full warning flag, the
> warning is being suppressed. OR do I also need to put fullwarn
> in the LFLAGS?

The problem doesn't get caught by using the -fullwarn because the libimage
library is not used by your application or any of the libraries that your
application uses. The problem arises because one of the loaders that your
application uses (I would guess the iv loader from my experience) in turn uses
the libimage library to load textures. The compiler has no way of knowing this
because the loaders are usually determined at runtime (hence the rld message
at runtime and not a compile time message).

In my opinion this is a problem with the loader in question, as it breaks the
paradigm that the loader can be used with any Performer application. In this
case, the loader can only be used with a Performer application that links with
the libimage library (which most do so you don't see this problem). For you
loader writers out there the way to get around this is to use the
-no_unresolved command to generate the .so file for the loader. If this is
done then this problem will go away as the undefined symbol will be reported
when the LOADER is compiled. This does not force any set of libraries on the
application writer. Of course this may make the library somewhat larger. I am
not sure how intelligent it is in not loading things into an application
multiple times. I think it does this intelligently (that is, if the
application already has the libimage library linked then it won't create
another copy when the "loader" is loaded) but I am not too sure.

Cheers,

        Brian


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Thu May 24 2001 - 08:42:58 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.