Hi Christoph, * Christoph Bartoschek wrote on Tue, Jun 07, 2005 at 08:57:26PM CEST: > > I'm trying to compile fam-2.6.10 from > ftp://oss.sgi.com/projects/fam/download/stable/fam-2.6.10.tar.gz > > The problem is that fam is a C++ library and libtool is not capable of C++.
Libtool /is/ capable of C++. > /bin/sh ../libtool --mode=link g++ -g -O2 -o libfam.la > -rpath /usr/local/lib -export-symbols fam.sym Client.lo fam.lo -lstdc++ > > libtool translates this to several commands and this one: > > gcc -shared Client.lo fam.lo /usr/lib/libstdc++.so -Wl,-soname > -Wl,libfam.so.0 -Wl,-retain-symbols-file -Wl,fam.sym > -o .libs/libfam.so.0.0.0 > > Why is not g++ called? Why is /usr/lib/libstdc++.so added to the command > line? The correct command line would be: Several issues: First, the libtool that ships with the tarball is *ancient* (1.4, four years old). Tell them to update to a recent one. Second, at the time that libtool was current, it was actually deemed safer bet to link with gcc and add libstdc++ manually than link with g++. (Maybe the latter was even impossible, I don't know -- at the time of libtool-1.4 I did not have anything to do with it yet). > How can I achieve that g++ is called and not gcc? And how to get rid > of /usr/lib/libstdc++.so correctly? Tell the maintainers of that package to use an up to date libtool. Or update it yourself (1.5.18 is recent, you need to re-libtoolize for ltmain.sh and get aclocal to include the corresponding libtool.m4 into aclocal.m4). > I've found the line > > libfam_la_LIBADD = -lstdc++ > in Makefile.in. Delete that line. And while you're at it, replace AM_PROG_LIBTOOL with AC_PROG_LIBTOOL in configure.in. After all of this you should be set. Well, you won't, because the rest of the package is as unmaintained as the build infrastructure (the C++ standard conformance is rather, um, could be better). Are you sure there is not a more recent version of this package? Regards, Ralf _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool