Neil Roeth <[EMAIL PROTECTED]> writes:

> I recently had a bug (193950) filed against one of my packages because the
> shared libraries had "undefined non-weak symbols" - libstdc++ was not being
> linked in.  I resolved it with what I consider a gruesome hack.  I discovered
> that forcing libtool to use g++ while linking would automatically link in
> libstdc++.  The hack came about because I could not figure out how to get
> libtool to use g++ instead of gcc.  So, I did
>
> sed -e 's/CC="gcc"/CC="g++"/g' libtool > lt.tmp && mv -f lt.tmp libtool
>
> to force it.  What's the right way to get libstdc++ linked in to shared
> libraries of C++ code?  The package uses autoconf, automake, libtool, etc.
>
I think I have found a solution for resoving the "libtool doesn't use
g++" problem and have sucessfully used it in a pkg of mine:

1) run libtoolize --force, using libtool 1.5 (not yet in Debian)
2) Copy libtool.m4 from libtool 1.5 to your package's m4 dir (this is to
   make aclocal use the new libtool.m4, since it doesn't look in
   /usr/local/, where libtool 1.5 is presumably installed, until a .deb
   comes in).
3) run aclocal
4) Make automake use libtool's --tag feature: put the following line into
   the .am file that builds the shared lib:

   CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) 
$(AM_LDFLAGS) $(LDFLAGS) -o $@

   This will override AM's default link line.
5) rebuild
                                                                               
Hopefully future versions of automake will support this without ugly hacks.

Regards, Andy
-- 
Andreas Rottmann         | [EMAIL PROTECTED]      | [EMAIL PROTECTED] | [EMAIL 
PROTECTED]
http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc
Fingerprint              | DFB4 4EB4 78A4 5EEE 6219  F228 F92F CFC5 01FD 5B62

Make free software, not war!


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to