stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: AIX xlC 7.0 and static library
Date Wed, 06 Sep 2006 18:39:25 GMT
Jeremy Dean wrote:
> I am building a static library of the standard library, however when I
> try to run my executable on my deployed machine I get the following
> error:
>  
> exec(): 0509-036 Cannot load program tpdlist because of the following
> errors:
>         0509-150   Dependent module libstd12s_rw.a(std12s_rw.o) could
> not be loaded.
>         0509-022 Cannot load module libstd12s_rw.a(std12s_rw.o).
>         0509-026 System error: A file or directory in the path name does
> not exist.
>  
> So based on this error message, do I also need to deploy the Standard
> library (libstd12s_rw.a)?  Does this not defeat the purpose of a static
> library?

Yes. We've been using the -qmkshrobj compiler flag to prelink library
object files (i.e., to generate code for template specializations used
in the library sources). The side-effect of using this option is that
it results in the archiver producing an AIX shared archive rather an
ordinary one. Shared archives must be deployed just like shared
libraries do.

Rebuilding the library with a recent version of XLC++ and without the
-qmkshrobj option should let you produce an ordinary archive that could
be used to link self-contained programs (it appears to with 8.0).
Earlier versions of VisualAge might be problematic (likely due to the
tempinc model).

Could you please file an issue to have this fixed?

Martin

Mime
View raw message