Subject: Re: C++: aaaaaarrrrggghh!
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: J.T. Conklin <jtc@NetBSD.ORG>
List: port-mac68k
Date: 12/20/1996 16:30:45
>  > OK, I'm really at my wits' end on this one.  I have completely reinstalled
>  > base12 and comp12.  I've done everything short of formatting the hard
>  > drive.  As a recap: *any* C++ program (even a text file with no includes,
>  > just "main() { return 0; }"), will compile and link ok, but when I run it
>  > (or any existing pre-compiled c++ apps I have), I get:
>  > 
>  > % ./foo
>  > /usr/libexec/ld.so: Undefined symbol "_tgetstr" in foo:/usr/lib/libcurses.so.2.1
>  > 
>  > I am *not* including, implicitly linking, or in any way involving
>  > libcurses!!  What on earth is going on???
> 
> It looks like libg++ implicitly includes libcurses, for the CursesW stuff.

The combination of CursesW and shared libraries causes all sorts of
problems -- not just with NetBSD.  There has been serious talk about
removing CursesW from libg++ among the folks at Cygnus who maintain
it.

IMO, it's almost to the point that we coan remove all of the "libg++"
part of libg++ (leaving stl, iostreams, etc.).  We don't use any of it
ourselves, and I think C++ programmers will probably be using stl for
their abstract data types instead.

	--jtc