libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Sun Studio: STL libraries


From: Tim Mooney
Subject: Re: Sun Studio: STL libraries
Date: Wed, 6 Feb 2008 18:19:43 -0600 (CST)

In regard to: Re: Sun Studio: STL libraries, Tim Mooney said (at 6:05pm on...:

In regard to: Re: Sun Studio: STL libraries, Peter O'Gorman said (at 5:25pm...:

Tim, you say we still need to have -library=Crun for the stlport4 case?

More than likely, yes.  The stlport4 incompatibility is with libCstd,
not libCrun.

I just tested with libtool 1.5.26:

/bin/bash ../libtool --tag=CXX --mode=link CC -xO2 -library=stlport4 -xtarget=native -m64 -xarch=native -I/local/include -I/local/gnu/include -no-undefined -version-info 6:0:5 -L/local/lib/64 -L/local/gnu/lib/64 -o libtag.la -rpath /local/lib/64 tag.lo tagunion.lo fileref.lo audioproperties.lo ./mpeg/libmpeg.la ./ogg/libogg.la ./flac/libflac.la ./mpc/libmpc.la ./ape/libape.la ./toolkit/libtoolkit.la ./wavpack/libwavpack.la ./speex/libspeex.la ./trueaudio/libtrueaudio.la CC -G -zdefs -hlibtag.so.1 -o .libs/libtag.so.1.5.0 .libs/tag.o .libs/tagunion.o .libs/fileref.o .libs/audioproperties.o -z allextract ./mpeg/.libs/libmpeg.a ./ogg/.libs/libogg.a ./flac/.libs/libflac.a ./mpc/.libs/libmpc.a ./ape/.libs/libape.a ./toolkit/.libs/libtoolkit.a ./wavpack/.libs/libwavpack.a ./speex/.libs/libspeex.a ./trueaudio/.libs/libtrueaudio.a -z defaultextract -L/local/lib/64 -L/local/gnu/lib/64 -lz -library=stlport4 -lc -xtarget=native -m64 -xarch=native
Undefined                       first referenced
 symbol                             in file
void __Crun::pure_error()         .libs/tag.o  (symbol belongs to implicit
dependency /usr/lib/64/libCrun.so.1)
void*__Crun::simple_down_cast(void*,const __Crun::static_type_info*,const
__Crun::static_type_info*) ./mpeg/.libs/libmpeg.a(id3v2tag.o)  (symbol
belongs to implicit dependency /usr/lib/64/libCrun.so.1)
void __Crun::vector_des(void*,unsigned long,unsigned long,void(*)(void*))
./mpeg/.libs/libmpeg.a(id3v1genres.o)  (symbol belongs to implicit
dependency /usr/lib/64/libCrun.so.1)
void*operator new(unsigned long,void*)
.libs/fileref.o  (symbol belongs to implicit dependency
/usr/lib/64/libCrun.so.1)

[additional symbols elided]

So, we apparently do need -library=Crun, whether or not -library=Cstd or
-library=stlport4 are specified.  Here's what ldd reports for
libstlport4.so.1:

$ldd /opt/SUNWspro/lib/stlport4/amd64/libstlport.so.1
        libCrun.so.1 =>  /usr/lib/64/libCrun.so.1
        libm.so.2 =>     /lib/64/libm.so.2
        librt.so.1 =>    /lib/64/librt.so.1
        libc.so.1 =>     /lib/64/libc.so.1
        libaio.so.1 =>   /lib/64/libaio.so.1
        libmd.so.1 =>    /lib/64/libmd.so.1


I wonder if some of this depends on what version of Workshop one is using?

It looks like it was not added only because the stlport4 already depends
on it (I guess from ldd output?). So there should be no harm in adding
it explicitly.

But if it shouldn't be needed, it might be nice to leave it off.  I just
checked, and libstlport4 is indeed linked to libCrun, so it shouldn't
be needed explicitly.

I was wrong about that, which is a bit of a surprise (not that I was
wrong, I'm used to that ;-) ).

 I think I should repeat my test, and make sure
I'm on the right track.

I was on the right track - linking with -library=stlport4 isn't enough to
pull in things like "void operator delete[](void*)", which come from
libCrun.

Tim
--
Tim Mooney                              address@hidden
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164




reply via email to

[Prev in Thread] Current Thread [Next in Thread]