[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: g++ is not used by libtool
From: |
Ralf Wildenhues |
Subject: |
Re: g++ is not used by libtool |
Date: |
Tue, 7 Jun 2005 21:31:43 +0200 |
User-agent: |
Mutt/1.5.9i |
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