I finally figured out what I was doing wrong, and I thought I'd post to the list to document my findings.
The important 'configure' flag is --enable-version-specific-runtime-libs This flag is specific to libstdc++, and specifies that the runtime libraries (including libstdc++.a) be installed in the compiler-specific subdirectory (${libdir}/gcc-lib/${target_alias}/${gcc_version}). It also affects where the include files will be installed. It is documented at <http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html>. I would, IMO, recommend using this flag anytime you install gcc 3.x, to ensure there are no conflicts with the packaged gcc. Christopher On Sun, Mar 17, 2002 at 08:34:25PM -0800, Christopher Currie wrote: > I recently installed gcc from cvs, since I understand people have had success with >it, pretty much > out of the box. I'm getting link errors compiling trival C++ programs, with both my >local g++ and > the Cygwin standard g++. I can overcome these errors if I explicitly link the right >copy of > libstdc++.a into the application, as demonstrated in the examples below. > > Can gcc 2.95 and gcc 3.x not coexist? I'm guessing it's either that or I installed >gcc incorrectly > somehow, but I'm not sure where I went wrong. Any help or direction would be >appreciated. > > Christopher > > Examples (cygcheck output is at the bottom, if it helps): > > $ cat foo.cc > #include <iostream> > > int > main() > > std::cout << "Hello, world!\n"; > return 0; > > > $ uname -a > CYGWIN_NT-5.0 CCURRIE 1.3.10(0.51/3/2) 2002-02-25 11:14 i686 unknown > > $ g++-3.1 -v > Reading specs from /usr/local/lib/gcc-lib/i686-pc-cygwin/3.1/specs > Configured with: /usr/src/gcc-3_1/configure --disable-nls --disable-shared --ena > ble-static --enable-cstdio=stdio --with-system-zlib --enable-languages=c,c++ --e > nable-threads=win32 --program-suffix=-3.1 > Thread model: win32 > gcc version 3.1 20020316 (prerelease) > > $ g++-3.1 -o foo foo.cc > /tmp/ccZLqlSf.o(.text+0x31):foo.cc: undefined reference to `std::cout' > /tmp/ccZLqlSf.o(.text+0x3e):foo.cc: undefined reference to `std::basic_ostream<c > har, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::ba > sic_ostream<char, std::char_traits<char> >&, char const*)' > /tmp/ccZLqlSf.o(.text+0x67):foo.cc: undefined reference to `std::ios_base::Init: > :Init[in-charge]()' > /tmp/ccZLqlSf.o(.text+0x82):foo.cc: undefined reference to `std::ios_base::Init: > :~Init [in-charge]()' > /tmp/ccZLqlSf.o(.eh_frame+0x11):foo.cc: undefined reference to `___gxx_personali > ty_v0' > collect2: ld returned 1 exit status > > $ g++-3.1 -o foo foo.cc /usr/local/lib/libstdc++.a > > $ ./foo > Hello, world! > > $ g++ -o foo foo.cc > /tmp/ccf7Qhwz.o(.text+0x24):foo.cc: undefined reference to `cout' > /tmp/ccf7Qhwz.o(.text+0x29):foo.cc: undefined reference to `ostream::operator<<( > char const *)' > collect2: ld returned 1 exit status > > $ g++ -o foo foo.cc /usr/lib/libstdc++.a > > $ ./foo > Hello, world! > > > $ cygcheck.exe -s -v -r > > Cygwin Win95/NT Configuration Diagnostics > Current System Time: Sun Mar 17 23:32:51 2002 > > Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 2 > > Path: C:\cygwin\usr\local\bin > C:\cygwin\bin > C:\cygwin\bin > c:\WINNT\system32 > c:\WINNT > c:\WINNT\System32\Wbem > > SysDir: C:\WINNT\System32 > WinDir: C:\WINNT > > HOME = `C:\cygwin\home\ccurrie' > MAKE_MODE = `unix' > PWD = `/home/ccurrie/src/test' > USER = `ccurrie' > > ALLUSERSPROFILE = `C:\Documents and Settings\All Users' > APPDATA = `C:\Documents and Settings\ccurrie\Application Data' > COMMONPROGRAMFILES = `C:\Program Files\Common Files' > COMPUTERNAME = `CCURRIE' > COMSPEC = `C:\WINNT\system32\cmd.exe' > HOMEDRIVE = `C:' > HOMEPATH = `\' > LOGONSERVER = `\\CCURRIE' > MANPATH = `:/usr/ssl/man' > NUMBER_OF_PROCESSORS = `1' > OLDPWD = `/home/ccurrie/src' > OS2LIBPATH = `C:\WINNT\system32\os2\dll;' > OS = `Windows_NT' > PATHEXT = `.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH' > PROCESSOR_ARCHITECTURE = `x86' > PROCESSOR_IDENTIFIER = `x86 Family 6 Model 8 Stepping 3, GenuineIntel' > PROCESSOR_LEVEL = `6' > PROCESSOR_REVISION = `0803' > PROGRAMFILES = `C:\Program Files' > PROMPT = `$P$G' > PS1 = `\[\033]0;\w\007 > \033[32m\]\u@\h \[\033[33m\w\033[0m\] > $ ' > SHLVL = `1' > SYSTEMDRIVE = `C:' > SYSTEMROOT = `C:\WINNT' > TEMP = `c:\DOCUME~1\ccurrie\LOCALS~1\Temp' > TERM = `cygwin' > TMP = `C:\cygwin\tmp' > USERDOMAIN = `CCURRIE' > USERNAME = `ccurrie' > USERPROFILE = `C:\Documents and Settings\ccurrie' > WINDIR = `C:\WINNT' > _ = `/usr/bin/cygcheck.exe' > > HKEY_CURRENT_USER\Software\Cygnus Solutions > HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin > HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 > (default) = `/cygdrive' > cygdrive flags = 0x00000022 > HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ > (default) = `C:/cygwin' > flags = 0x0000000a > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin > (default) = `C:/cygwin/bin' > flags = 0x0000000a > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib > (default) = `C:/cygwin/lib' > flags = 0x0000000a > HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options > > c: hd NTFS 11507Mb 35% CP CS UN PA FC > > . /cygdrive user binmode,noumount > C:/cygwin / system binmode > C:/cygwin/bin /usr/bin system binmode > C:/cygwin/lib /usr/lib system binmode > > Found: C:\cygwin\bin\bash.exe > Found: C:\cygwin\bin\cat.exe > Found: C:\cygwin\bin\cpp.exe > Found: C:\cygwin\bin\find.exe > Found: C:\cygwin\bin\gcc.exe > Found: C:\cygwin\bin\gdb.exe > Found: C:\cygwin\bin\ld.exe > Found: C:\cygwin\bin\ls.exe > Found: C:\cygwin\bin\make.exe > Found: C:\cygwin\bin\sh.exe > > 56k 2000/12/03 C:\cygwin\bin\cygbz21.0.dll - os=4.0 img=1.0 sys=4.0 > "cygbz21.0.dll" v0.0 ts=2000/11/20 18:53 > 621k 2002/01/16 C:\cygwin\bin\cygcrypto.dll - os=4.0 img=1.0 sys=4.0 > "cygcrypto.dll" v0.0 ts=2002/1/16 4:54 > 45k 2001/04/25 C:\cygwin\bin\cygform5.dll - os=4.0 img=1.0 sys=4.0 > "cygform5.dll" v0.0 ts=2001/4/25 1:28 > 35k 2002/01/09 C:\cygwin\bin\cygform6.dll - os=4.0 img=1.0 sys=4.0 > "cygform6.dll" v0.0 ts=2002/1/9 1:03 > 19k 2002/02/20 C:\cygwin\bin\cyggdbm.dll - os=4.0 img=1.0 sys=4.0 > "cyggdbm.dll" v0.0 ts=2002/2/19 22:05 > 17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll - os=4.0 img=1.0 sys=4.0 > "cyghistory4.dll" v0.0 ts=2001/1/6 23:34 > 20k 2002/01/13 C:\cygwin\bin\cyghistory5.dll - os=4.0 img=1.0 sys=4.0 > "cyghistory5.dll" v0.0 ts=2002/1/12 20:27 > 22k 2001/12/13 C:\cygwin\bin\cygintl-1.dll - os=4.0 img=1.0 sys=4.0 > "cygintl-1.dll" v0.0 ts=2001/12/13 4:28 > 21k 2001/06/20 C:\cygwin\bin\cygintl.dll - os=4.0 img=1.0 sys=4.0 > "cygintl.dll" v0.0 ts=2001/6/20 13:09 > 81k 2001/10/20 C:\cygwin\bin\cygitcl30.dll - os=4.0 img=1.0 sys=4.0 > "cygitcl30.dll" v0.0 ts=2001/10/19 20:25 > 35k 2001/10/20 C:\cygwin\bin\cygitk30.dll - os=4.0 img=1.0 sys=4.0 > "cygitk30.dll" v0.0 ts=2001/10/19 20:25 > 26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll - os=4.0 img=1.0 sys=4.0 > "cygmenu5.dll" v0.0 ts=2001/4/25 1:27 > 20k 2002/01/09 C:\cygwin\bin\cygmenu6.dll - os=4.0 img=1.0 sys=4.0 > "cygmenu6.dll" v0.0 ts=2002/1/9 1:03 > 156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll - os=4.0 img=1.0 sys=4.0 > "cygncurses++5.dll" v0.0 ts=2001/4/25 1:29 > 175k 2002/01/09 C:\cygwin\bin\cygncurses++6.dll - os=4.0 img=1.0 sys=4.0 > "cygncurses++6.dll" v0.0 ts=2002/1/9 1:03 > 226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll - os=4.0 img=1.0 sys=4.0 > "cygncurses5.dll" v0.0 ts=2001/4/25 1:17 > 202k 2002/01/09 C:\cygwin\bin\cygncurses6.dll - os=4.0 img=1.0 sys=4.0 > "cygncurses6.dll" v0.0 ts=2002/1/9 1:03 > 15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll - os=4.0 img=1.0 sys=4.0 > "cygpanel5.dll" v0.0 ts=2001/4/25 1:27 > 12k 2002/01/09 C:\cygwin\bin\cygpanel6.dll - os=4.0 img=1.0 sys=4.0 > "cygpanel6.dll" v0.0 ts=2002/1/9 1:03 > 40k 2001/11/21 C:\cygwin\bin\cygpcre.dll - os=4.0 img=1.0 sys=4.0 > "cygpcre.dll" v0.0 ts=2001/11/21 17:15 > 39k 2001/11/21 C:\cygwin\bin\cygpcreposix.dll - os=4.0 img=1.0 sys=4.0 > "cygpcreposix.dll" v0.0 ts=2001/11/21 17:15 > 108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll - os=4.0 img=1.0 sys=4.0 > "cygreadline4.dll" v0.0 ts=2001/1/6 23:34 > 121k 2002/01/13 C:\cygwin\bin\cygreadline5.dll - os=4.0 img=1.0 sys=4.0 > "cygreadline5.dll" v0.0 ts=2002/1/12 20:27 > 156k 2002/01/16 C:\cygwin\bin\cygssl.dll - os=4.0 img=1.0 sys=4.0 > "cygssl.dll" v0.0 ts=2002/1/16 4:54 > 390k 2001/10/20 C:\cygwin\bin\cygtcl80.dll - os=4.0 img=1.0 sys=4.0 > "cygtcl80.dll" v0.0 ts=2001/10/19 20:24 > 5k 2001/10/20 C:\cygwin\bin\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0 > 10k 2001/10/20 C:\cygwin\bin\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0 > "cygtclreg80.dll" v0.0 ts=2001/10/19 20:24 > 623k 2001/10/20 C:\cygwin\bin\cygtk80.dll - os=4.0 img=1.0 sys=4.0 > "cygtk80.dll" v0.0 ts=2001/10/19 20:25 > 50k 2002/03/12 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0 > "cygz.dll" v0.0 ts=2002/3/11 23:38 > 751k 2002/02/25 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0 > "cygwin1.dll" v0.0 ts=2002/2/25 11:14 > Cygwin DLL version info: > DLL version: 1.3.10 > DLL epoch: 19 > DLL bad signal mask: 19005 > DLL old termios: 5 > DLL malloc env: 28 > API major: 0 > API minor: 51 > Shared data: 3 > DLL identifier: cygwin1 > Mount registry: 2 > Cygnus registry name: Cygnus Solutions > Cygwin registry name: Cygwin > Program options name: Program Options > Cygwin mount registry name: mounts v2 > Cygdrive flags: cygdrive flags > Cygdrive prefix: cygdrive prefix > Cygdrive default prefix: > Build date: Mon Feb 25 11:14:34 EST 2002 > Shared id: cygwin1S3 > > > Cygwin Package Information > Last downloaded files to: C:\Documents and Settings\ccurrie\My Documents\cygwin > Last downloaded files from: http://mirrors.rcn.net/pub/sourceware/cygwin > > Package Version > ash 20020131-1 > autoconf 2.52c-1 > autoconf-devel 2.52-4 > autoconf-stable 2.13-4 > automake 1.6a-1 > automake-devel 1.5-5 > automake-stable 1.4p5-5 > bash 2.05a-3 > binutils 20011002-1 > bison 1.33-1 > bzip2 1.0.1-6 > crypt 1.0-1 > cvs 1.11.0-1 > cygwin 1.3.10-1 > diff 0.0 > fileutils 4.1-1 > findutils 4.1 > flex 2.5.4-1 > gawk 3.0.4-1 > gcc 2.95.3-5 > gdb 20010428-3 > gdbm 1.8.0-4 > grep 2.5g > groff 1.17.2-1 > gzip 1.3.2-1 > less 358-3 > libintl 0.10.38-3 > libintl1 0.10.40-1 > libncurses5 5.2-1 > libncurses6 5.2-8 > libreadline4 4.1-2 > libreadline5 4.2a-1 > login 1.4-3 > m4 0.0 > make 3.79.1-5 > man 1.5g-2 > mktemp 1.4-1 > ncftp 3.1.2-1 > ncurses 5.2-8 > newlib-man 20001118-1 > openssh 3.1p1-1 > openssl 0.9.6c-3 > pcre 3.7-1 > perl 5.6.1-2 > readline 4.2a-1 > sed 3.02-1 > sh-utils 2.0-2 > tar 1.13.19-1 > termcap 20010825-1 > terminfo 5.2-1 > texinfo 4.0-5 > textutils 2.0.21-1 > vim 6.0.93-1 > w32api 1.2-1 > which 1.5-1 > zlib 1.1.4-1 > > Use -h to see help about each section > > ------------------------------------------------------- > With reasonable men I will reason; > with humane men I will plead; > but to tyrants I will give no quarter. > -- William Lloyd Garrison -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/