Thanks. Will do. I will let the list know if it doesn't work. Ulrik
--- Bob Friesenhahn <[EMAIL PROTECTED]> wrote: > Have you tried using the CVS version of libtool? > This seems to work > ok with the Sun Forte compiler. Earlier versions of > libtool are not > designed to work with C++. > > Bob > > On Thu, 28 Nov 2002, Ulrik Petersen wrote: > > > Hello, > > > > libtool is great, but unfortunately it still does > not > > work equally well on all platforms. I have > problems > > with building shared C++ libraries on the Sun > Forte CC > > compiler, especially when using templates. There > are > > severel problems, all of which I will describe > below. > > > > The Sun Forte compiler has problems when object > files > > are moved around, which libtool does by default. > This > > is because the Sun Forte compiler stores template > > instances in separate files, along with > information > > about which object files belong with which > template > > instances. Thus when object files are moved > around > > (between $libdir and $objdir), the linker (which > > happens to be the compiler) does not know where to > > find the template instances, resulting in > unresolved > > symbols. There is a FAQ dealing with this at: > > > > > http://wwws.sun.com/software/sundev/suncc/faqs/cpp.html#0q3 > > > > Here is a (very dirty) sed script I use in my > > configure.in in order to make libtool work: > > > > s/compiler_o_lo="no"/compiler_o_lo="yes"/ > > s%$show "$mv $output_obj $libobj"%\#% > > s%$show "$mv $libobj $obj"%\#% > > s%$show "$mv $output_obj $obj"%\#% > > s%$show "$mv $libobj $lo_libobj"%\#% > > s%$run $mv $output_obj $libobj%test "x" = "x"% > > s%$run $mv $libobj $obj%test "x" = "x"% > > s%$run $mv $output_obj $obj%test "x" = "x"% > > s%$run $mv $libobj $lo_libobj%test "x" = "x"% > > s%\*\.lo) libobjs="\$libobjs \$arg"%\*\.lo) > > libobjs="\$libobjs \$objdir/\$arg"% > > > > As you can see, this sed script solves three > problems: > > > > 1) It sets compiler_o_lo to yes, even though > > aclocal.m4 believes it should be no. > > > > 2) It removes the lines that mv any object files. > > > > 3) It puts $objdir/ in front of all object files > when > > linking. > > > > Also, as detailed in the Sun Forte C++ User's > Guide, > > one should use CC -xar -o instead of ar and CC -g > > instead of ld when linking C++ libraries. > Otherwise, > > templates are not instantiated. > > > > Here is the code I use in my configure.in to > > accomplish this. ISHOSTSUNCC is a variable I set > > myself. > > > > if test x$ISHOSTSUNCC = xyes; then > > AR=CC; > > AR_FLAGS="-xar -o"; > > LD=CC; > > export AR AR_FLAGS LD > > fi > > > > dnl Invoke libtool > > AC_PROG_LIBTOOL > > > > Of course, one should not use the CC compiler as > the > > linker/archiver when linking C libraries. So > there > > are some language-related complexities involved > here. > > > > The Sun Forte C++ User's Guide can be found at: > > > > http://docs.sun.com/db/doc/806-7991 > > > > The relevant sections are: Chapter 7 (especially > > 7.3.1), Chapter 16 (especially 16.2 and 16.3), > Chapter > > 12. > > > > If you need any other information, please contact > me > > off-list: [EMAIL PROTECTED] > > > > Best regards, > > > > Ulrik Petersen > > Emdros maintainer, <http://www.emdros.org/> > > > > > > ===== > > -- > > Ulrik Petersen, Denmark > > > > Beskyt din computer mod virus og misbrug! L�s mere > i Yahoo! Sikkerhedscenter p� > www.yahoo.dk/sikkerhedscenter > > > > > > _______________________________________________ > > Libtool mailing list > > [EMAIL PROTECTED] > > http://mail.gnu.org/mailman/listinfo/libtool > > > > ====================================== > Bob Friesenhahn > [EMAIL PROTECTED] > http://www.simplesystems.org/users/bfriesen > ===== -- Ulrik Petersen, Denmark Beskyt din computer mod virus og misbrug! L�s mere i Yahoo! Sikkerhedscenter p� www.yahoo.dk/sikkerhedscenter _______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/libtool
