public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
       [not found] <Pine.SOL.3.91.1000327114055.13734A-100000@cse.cygnus.com>
@ 2000-03-27 14:52 ` Avi Green
  2000-03-27 21:34   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat) llewelly
                     ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Avi Green @ 2000-03-27 14:52 UTC (permalink / raw)
  To: Benjamin Kosnik; +Cc: libstdc++-v3 Development List, GCC Installation Help List

Benjamin Kosnik wrote:

> libstdc++-2.90.8 is libstdc++-v3: . . . libstdc++.so.3.0.0
> libstdc++-v2 is in the gcc releases. . . libstdc++.a.2.10.0

Thanks a lot, Ben.  I'm really trying.


> this list is for libstdc++-v3. The occasional confused question about v2
> is permitted, but not actively encouraged...

OK, now I know better.  (So IS there a list for v2?)

Anyway, I successfully built v3, including the gcc rebuild, but my
libraries are all messed up now.  Is there anyone who's willing to help
me?  I have a vanilla Red Hat 6.0 system, plus the gcc-2.95 devel RPMs,
plus v3.  A simple hello.cpp program generates the following on compile:

$ g++ -I/usr/libstdc++-2.90.8/include/g++-v3 -L/usr/libstdc++-2.90.8/lib
Hello.cpp
/tmp/cc2CbfSP.o: In function `main':
/tmp/cc2CbfSP.o(.text+0x26): undefined reference to `cout'
/tmp/cc2CbfSP.o(.text+0x2b): undefined reference to `basic_ostream<char,
char_traits<char> > & operator<<<char_traits<char> >(basic_ostream<char,
char_traits<char> > &, char const *)'
/tmp/cc2CbfSP.o(.text+0x36): undefined reference to `basic_ostream<char,
char_traits<char> >::operator<<(basic_ostream<char, char_traits<char> >
&(*)(basic_ostream<char, char_traits<char> > &))'
/tmp/cc2CbfSP.o: In function `Hello::~Hello(void)':
/tmp/cc2CbfSP.o(.text+0xbf): undefined reference to `cout'
/tmp/cc2CbfSP.o(.text+0xc4): undefined reference to `basic_ostream<char,
char_traits<char> > & operator<<<char_traits<char> >(basic_ostream<char,
char_traits<char> > &, char const *)'
/tmp/cc2CbfSP.o(.text+0xcf): undefined reference to `basic_ostream<char,
char_traits<char> >::operator<<(basic_ostream<char, char_traits<char> >
&(*)(basic_ostream<char, char_traits<char> > &))'
/tmp/cc2CbfSP.o: In function
`__static_initialization_and_destruction_0':
/tmp/cc2CbfSP.o(.text+0x116): undefined reference to
`ios_base::Init::Init(void)'
/tmp/cc2CbfSP.o(.text+0x12b): undefined reference to
`ios_base::Init::~Init(void)'
/tmp/cc2CbfSP.o: In function `basic_ostream<char, char_traits<char> > &
flush<char, char_traits<char> >(basic_ostream<char, char_traits<char> >
&)':
/tmp/cc2CbfSP.o(.basic_ostream<char, char_traits<char> > &
gnu.linkonce.t.flush<char, char_traits<char> >(basic_ostream<char,
char_traits<char> > &)+0xe): undefined reference to `basic_ostream<char,
char_traits<char> >::flush(void)'
/tmp/cc2CbfSP.o: In function `basic_ostream<char, char_traits<char> > &
endl<char, char_traits<char> >(basic_ostream<char, char_traits<char> >
&)':
/tmp/cc2CbfSP.o(.basic_ostream<char, char_traits<char> > &
gnu.linkonce.t.endl<char, char_traits<char> >(basic_ostream<char,
char_traits<char> > &)+0x18): undefined reference to `basic_ios<char,
char_traits<char> >::widen(char) const'
/tmp/cc2CbfSP.o(.basic_ostream<char, char_traits<char> > &
gnu.linkonce.t.endl<char, char_traits<char> >(basic_ostream<char,
char_traits<char> > &)+0x2a): undefined reference to
`basic_ostream<char, char_traits<char> >::put(char)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_alloc::~bad_alloc(void)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::exception type_info function'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_cast type_info node'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_cast virtual table'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_alloc virtual table'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::exception type_info node'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_cast type_info function'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::terminate(void)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::uncaught_exception(void)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::exception virtual table'
collect2: ld returned 1 exit status



> > > So it seems that libstdc++ really CAN'T be built without the gcc
> > > source, unless the configure script is hacked or something, which
> > > seems overwhelming.
> 
> This part of the install documentation is now removed. Sorry for the
> confusion.
> 
> Please hang with us on the config/build/install docs. This part of
> libstdc++-v3 has undergone a lot of change in the last two months, and
> the documentation is still reeling from the changes. We're working to
> make the install process less painful--thanks to everybody who sent in
> feedback.

And your hard work is greatly appreciated.  I can't *imagine* installing
without your docs!  I've read them and reread them numerous times to get
things straight.  (Let me know if you want specific comments.)

Anyway, thanks for your response.

--Avi

p.s.  After I installed v3, I found that
/usr/lib/libstdc++-libc6.1-1.so.2
      had been removed.  I couldn't find any reference to that file in
the
      v3 source tree, but it could have been wiped by one of the 2.95.2
      RPMs.  Unfortunately it's needed for groff, which is used by
man(1).
      Anyway, any help is appreciated; if the problem was caused by some
      other install, I apologize in advance for bothering you.

$ man g++
/usr/bin/groff: error in loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file
or directory
/usr/bin/gtbl: error in loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file
or directory

$ ldd /usr/bin/groff
	libstdc++-libc6.1-1.so.2 => not found
	libm.so.6 => /lib/libm.so.6 (0x40018000)
	libc.so.6 => /lib/libc.so.6 (0x40034000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)




=========  Avi Green :) (: www.sputnik7.com  =========
=    Junior Unix S/A       Novice System Specialist  =
========  avi at sputnik7.com   212 217-1147  ========

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat)
  2000-03-27 14:52 ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Avi Green
@ 2000-03-27 21:34   ` llewelly
  2000-04-01  0:00     ` llewelly
  2000-03-28 12:44   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Alexandre Oliva
  2000-04-01  0:00   ` Avi Green
  2 siblings, 1 reply; 10+ messages in thread
From: llewelly @ 2000-03-27 21:34 UTC (permalink / raw)
  To: Avi Green
  Cc: Benjamin Kosnik, libstdc++-v3 Development List,
	GCC Installation Help List

On Mon, 27 Mar 2000, Avi Green wrote:

[snip]
> plus v3.  A simple hello.cpp program generates the following on compile:
> 
> $ g++ -I/usr/libstdc++-2.90.8/include/g++-v3 -L/usr/libstdc++-2.90.8/lib

I believe you need to add '-fhonor-std' to your command line.

By default, libstdc++-v3 builds with namespace std enabled; that is,
  -fhonor-std .

However, for backwards compatiblity reasons, g++ treats namespace std as
  the global namespace by default.

So if you use 'std::cout' in your code, g++ will generate a reference to
  'cout' ... but libstdc++-v3 contains 'std::cout' , *not* 'cout' . 

> Hello.cpp
> /tmp/cc2CbfSP.o: In function `main':
> /tmp/cc2CbfSP.o(.text+0x26): undefined reference to `cout'

[big long fat snip, including error message and a second question I
  cannot answer.]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-27 14:52 ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Avi Green
  2000-03-27 21:34   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat) llewelly
@ 2000-03-28 12:44   ` Alexandre Oliva
  2000-03-28 23:30     ` Avi Green
  2000-04-01  0:00     ` Alexandre Oliva
  2000-04-01  0:00   ` Avi Green
  2 siblings, 2 replies; 10+ messages in thread
From: Alexandre Oliva @ 2000-03-28 12:44 UTC (permalink / raw)
  To: Avi Green
  Cc: Benjamin Kosnik, libstdc++-v3 Development List,
	GCC Installation Help List

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]

On Mar 27, 2000, Avi Green <avi-nospam@sputnik7.com> wrote:

> p.s.  After I installed v3, I found that
> /usr/lib/libstdc++-libc6.1-1.so.2 had been removed.  I couldn't find
> any reference to that file in the v3 source tree, but it could have
> been wiped by one of the 2.95.2 RPMs.

You should certainly arrange for this file not to be removed, even if
you upgrade libstdc++.  Did you upgrade libstdc++ using RPM?  There
must be a way to arrange for it to upgrade a package without removing
the previous version's libraries.

-- 
Alexandre Oliva    Enjoy Guaraná, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-28 12:44   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Alexandre Oliva
@ 2000-03-28 23:30     ` Avi Green
  2000-03-29 12:14       ` Avi Green
  2000-04-01  0:00       ` Avi Green
  2000-04-01  0:00     ` Alexandre Oliva
  1 sibling, 2 replies; 10+ messages in thread
From: Avi Green @ 2000-03-28 23:30 UTC (permalink / raw)
  To: GCC Installation Help List
  Cc: libstdc++-v3 Development List, Bernhard Rosenkraenzer

Alexandre Oliva wrote:

> > p.s.  After I installed v3, I found that
> > /usr/lib/libstdc++-libc6.1-1.so.2 had been removed.  I couldn't find
> > any reference to that file in the v3 source tree, but it could have
> > been wiped by one of the 2.95.2 RPMs.
> 
> You should certainly arrange for this file not to be removed, even if
> you upgrade libstdc++.  Did you upgrade libstdc++ using RPM?  There
> must be a way to arrange for it to upgrade a package without removing
> the previous version's libraries.

After two days of blindly scavenging all of my packages and logs,
I have finally realized (at 1 AM) that I was looking for the wrong
file all along: /usr/lib/libstdc++-libc6.1-1.so.2 is a symbolic link
to libstdc++-2-libc6.1-1-2.9.0.so on my system, and it's actually
the latter file which is gone.  Apparently it was removed by the
postinstall script from gcc-c++-2.95.2-3.i386.rpm as part of its
half-successful attempt to remove egcs-c++ from my system.  It also
upgraded my libstdc++-2-libc6.1-1-2.*.*.a and libstdc++-libc6.1-*.a.*.

So:  What should I do?  Should I look for an old copy of the
libstdc++-libc6.1-1.so.2 file on the 'net and just and paste it back
into /usr/lib?  A good deal of the commands on my system require it.
One idea: I observe that the gcc-c++ RPM info says that it "does
include the static standard C++ library and C++ header files; the
library for dynamically linking programs is available separately."
Perhaps that would solve the problem?  Or is this something I can
solve by pointing the libstdc++-libc6.1-1.so.2 symlink somewhere
else or by setting LD_LIBRARY_PATH?

Any help would be appreciated.

Thanks again,
Avi

p.s.  I couldn't find any mention of this in either the gcc docs or the
      libstdc++ docs.  One or two messages in the gcc-help list archive
      seemed vaguely related, but no dice.

p.p.s. For those interested, I have reconstructed the steps I took
      installing gcc and libstdc++ over the last week.  You won't need
      it to help me, but since I spent a few hours trying to reconstruct
      this sequence before I knew the problem lay with my installation
      of the gcc-c++ RPM, here it is:

0. Tried (& failed) to make gcc & g++ from tarballs.  Gave up.
1. Installed libstdc++-devel-2.95.2-3.i386.rpm
   Note: Querying the package reveals that it OBSOLETES
   gcc-libstdc++-devel
2. Tried to install gcc-2.95.2-3.i386.rpm but was told I needed an
   up-to-date version of binutils (and cpp?)
3. Tried to install cpp-2.95.2-3.i386.rpm but was told I needed an
   up-to-date version of binutils
4. Installed binutils-2.9.4.0.6-1.i386.rpm
5. Installed cpp-2.95.2-3.i386.rpm
6. Tried to install gcc-2.95.2-3.i386.rpm but was told that
   egcs = 1.1.2 is needed by egcs-c++-1.1.2-12
7. Installed gcc-2.95.2-3.i386.rpm using rpm -U --nodeps
   Note: Querying the package reveals that it OBSOLETES egcs.
   This removed various files in /usr/lib/gcc-lib/i386-redhat-linux/
   egcs-2.91.66.  It also removed the egcs (1.1.2) package.
7. Installed gcc-c++-2.95.2-3.i386.rpm
   Note: Querying the package reveals that it OBSOLETES egcs-c++.
   Interestingly, my installation log for this RPM reveals that
   libstdc++-libc6.1-1.so.2, the missing file, is a dependency:
     D: dependencies: looking for libstdc++-libc6.1-1.so.2
     ...
     D: removing provides index for libstdc++-libc6.1-1.so.2
     D: removing provides index for libstdc++-libc6.1-1.so.2
        (GCC.INTERNAL)
   Apparently this removed the egcs-c++ package, which contained
   libstdc++-2-libc6.1-1-2.9.0.so
8. Made and installed libstdc++-2.90.8 from tarball.
   Played with the links.
9. Discovered that the man(1) command no longer worked because
   libstdc++-2-libc6.1-1-2.9.0.so (a.k.a. libstdc++-libc6.1-1.so.2)
   was no longer on the system.
   

=========  Avi Green :) (: www.sputnik7.com  =========
========     Unix S/A & System Specialist     ========
========  avi at sputnik7.com   212 217-1147  ========

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-28 23:30     ` Avi Green
@ 2000-03-29 12:14       ` Avi Green
  2000-04-01  0:00         ` Avi Green
  2000-04-01  0:00       ` Avi Green
  1 sibling, 1 reply; 10+ messages in thread
From: Avi Green @ 2000-03-29 12:14 UTC (permalink / raw)
  To: GCC Installation Help List, libstdc++-v3 Development List,
	Bernhard Rosenkraenzer

I wrote:

> So:  What should I do?  Should I look for an old copy of the
> libstdc++-libc6.1-1.so.2 file on the 'net and just and paste it back
> into /usr/lib?  A good deal of the commands on my system require it.
> One idea: I observe that the gcc-c++ RPM info says that it "does
> include the static standard C++ library and C++ header files; the
> library for dynamically linking programs is available separately."
> Perhaps that would solve the problem?  Or is this something I can
> solve by pointing the libstdc++-libc6.1-1.so.2 symlink somewhere
> else or by setting LD_LIBRARY_PATH?

I found a non-RPM (finally!) copy of libstdc++-libc6.1-1.so.2 in the
Slackware distribution.  I copied it into /usr/lib, and my commands
seem to work fine now.  Using ldd(1), I determined that none of the
other missing library files are needed by my system except for
lib[cm].so.5 and libstdc++.so.27, and although the links with those
names were gone, fortunately the underlying files weren't, and I was
able to resolve all of the library dependency problems by putting
the files and links back into /usr/lib.  Hopefully this won't break
anything in the new libraries.  (Right?)

Thanks to everyone for listening.

--Avi


=========  Avi Green :) (: www.sputnik7.com  =========
========     Unix S/A & System Specialist     ========
========  avi at sputnik7.com   212 217-1147  ========

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-29 12:14       ` Avi Green
@ 2000-04-01  0:00         ` Avi Green
  0 siblings, 0 replies; 10+ messages in thread
From: Avi Green @ 2000-04-01  0:00 UTC (permalink / raw)
  To: GCC Installation Help List, libstdc++-v3 Development List,
	Bernhard Rosenkraenzer

I wrote:

> So:  What should I do?  Should I look for an old copy of the
> libstdc++-libc6.1-1.so.2 file on the 'net and just and paste it back
> into /usr/lib?  A good deal of the commands on my system require it.
> One idea: I observe that the gcc-c++ RPM info says that it "does
> include the static standard C++ library and C++ header files; the
> library for dynamically linking programs is available separately."
> Perhaps that would solve the problem?  Or is this something I can
> solve by pointing the libstdc++-libc6.1-1.so.2 symlink somewhere
> else or by setting LD_LIBRARY_PATH?

I found a non-RPM (finally!) copy of libstdc++-libc6.1-1.so.2 in the
Slackware distribution.  I copied it into /usr/lib, and my commands
seem to work fine now.  Using ldd(1), I determined that none of the
other missing library files are needed by my system except for
lib[cm].so.5 and libstdc++.so.27, and although the links with those
names were gone, fortunately the underlying files weren't, and I was
able to resolve all of the library dependency problems by putting
the files and links back into /usr/lib.  Hopefully this won't break
anything in the new libraries.  (Right?)

Thanks to everyone for listening.

--Avi


=========  Avi Green :) (: www.sputnik7.com  =========
========     Unix S/A & System Specialist     ========
========  avi at sputnik7.com   212 217-1147  ========

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat)
  2000-03-27 21:34   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat) llewelly
@ 2000-04-01  0:00     ` llewelly
  0 siblings, 0 replies; 10+ messages in thread
From: llewelly @ 2000-04-01  0:00 UTC (permalink / raw)
  To: Avi Green
  Cc: Benjamin Kosnik, libstdc++-v3 Development List,
	GCC Installation Help List

On Mon, 27 Mar 2000, Avi Green wrote:

[snip]
> plus v3.  A simple hello.cpp program generates the following on compile:
> 
> $ g++ -I/usr/libstdc++-2.90.8/include/g++-v3 -L/usr/libstdc++-2.90.8/lib

I believe you need to add '-fhonor-std' to your command line.

By default, libstdc++-v3 builds with namespace std enabled; that is,
  -fhonor-std .

However, for backwards compatiblity reasons, g++ treats namespace std as
  the global namespace by default.

So if you use 'std::cout' in your code, g++ will generate a reference to
  'cout' ... but libstdc++-v3 contains 'std::cout' , *not* 'cout' . 

> Hello.cpp
> /tmp/cc2CbfSP.o: In function `main':
> /tmp/cc2CbfSP.o(.text+0x26): undefined reference to `cout'

[big long fat snip, including error message and a second question I
  cannot answer.]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-27 14:52 ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Avi Green
  2000-03-27 21:34   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat) llewelly
  2000-03-28 12:44   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Alexandre Oliva
@ 2000-04-01  0:00   ` Avi Green
  2 siblings, 0 replies; 10+ messages in thread
From: Avi Green @ 2000-04-01  0:00 UTC (permalink / raw)
  To: Benjamin Kosnik; +Cc: libstdc++-v3 Development List, GCC Installation Help List

Benjamin Kosnik wrote:

> libstdc++-2.90.8 is libstdc++-v3: . . . libstdc++.so.3.0.0
> libstdc++-v2 is in the gcc releases. . . libstdc++.a.2.10.0

Thanks a lot, Ben.  I'm really trying.


> this list is for libstdc++-v3. The occasional confused question about v2
> is permitted, but not actively encouraged...

OK, now I know better.  (So IS there a list for v2?)

Anyway, I successfully built v3, including the gcc rebuild, but my
libraries are all messed up now.  Is there anyone who's willing to help
me?  I have a vanilla Red Hat 6.0 system, plus the gcc-2.95 devel RPMs,
plus v3.  A simple hello.cpp program generates the following on compile:

$ g++ -I/usr/libstdc++-2.90.8/include/g++-v3 -L/usr/libstdc++-2.90.8/lib
Hello.cpp
/tmp/cc2CbfSP.o: In function `main':
/tmp/cc2CbfSP.o(.text+0x26): undefined reference to `cout'
/tmp/cc2CbfSP.o(.text+0x2b): undefined reference to `basic_ostream<char,
char_traits<char> > & operator<<<char_traits<char> >(basic_ostream<char,
char_traits<char> > &, char const *)'
/tmp/cc2CbfSP.o(.text+0x36): undefined reference to `basic_ostream<char,
char_traits<char> >::operator<<(basic_ostream<char, char_traits<char> >
&(*)(basic_ostream<char, char_traits<char> > &))'
/tmp/cc2CbfSP.o: In function `Hello::~Hello(void)':
/tmp/cc2CbfSP.o(.text+0xbf): undefined reference to `cout'
/tmp/cc2CbfSP.o(.text+0xc4): undefined reference to `basic_ostream<char,
char_traits<char> > & operator<<<char_traits<char> >(basic_ostream<char,
char_traits<char> > &, char const *)'
/tmp/cc2CbfSP.o(.text+0xcf): undefined reference to `basic_ostream<char,
char_traits<char> >::operator<<(basic_ostream<char, char_traits<char> >
&(*)(basic_ostream<char, char_traits<char> > &))'
/tmp/cc2CbfSP.o: In function
`__static_initialization_and_destruction_0':
/tmp/cc2CbfSP.o(.text+0x116): undefined reference to
`ios_base::Init::Init(void)'
/tmp/cc2CbfSP.o(.text+0x12b): undefined reference to
`ios_base::Init::~Init(void)'
/tmp/cc2CbfSP.o: In function `basic_ostream<char, char_traits<char> > &
flush<char, char_traits<char> >(basic_ostream<char, char_traits<char> >
&)':
/tmp/cc2CbfSP.o(.basic_ostream<char, char_traits<char> > &
gnu.linkonce.t.flush<char, char_traits<char> >(basic_ostream<char,
char_traits<char> > &)+0xe): undefined reference to `basic_ostream<char,
char_traits<char> >::flush(void)'
/tmp/cc2CbfSP.o: In function `basic_ostream<char, char_traits<char> > &
endl<char, char_traits<char> >(basic_ostream<char, char_traits<char> >
&)':
/tmp/cc2CbfSP.o(.basic_ostream<char, char_traits<char> > &
gnu.linkonce.t.endl<char, char_traits<char> >(basic_ostream<char,
char_traits<char> > &)+0x18): undefined reference to `basic_ios<char,
char_traits<char> >::widen(char) const'
/tmp/cc2CbfSP.o(.basic_ostream<char, char_traits<char> > &
gnu.linkonce.t.endl<char, char_traits<char> >(basic_ostream<char,
char_traits<char> > &)+0x2a): undefined reference to
`basic_ostream<char, char_traits<char> >::put(char)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_alloc::~bad_alloc(void)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::exception type_info function'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_cast type_info node'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_cast virtual table'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_alloc virtual table'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::exception type_info node'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::bad_cast type_info function'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::terminate(void)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::uncaught_exception(void)'
/usr/libstdc++-2.90.8/lib/libstdc++.so: undefined reference to
`std::exception virtual table'
collect2: ld returned 1 exit status



> > > So it seems that libstdc++ really CAN'T be built without the gcc
> > > source, unless the configure script is hacked or something, which
> > > seems overwhelming.
> 
> This part of the install documentation is now removed. Sorry for the
> confusion.
> 
> Please hang with us on the config/build/install docs. This part of
> libstdc++-v3 has undergone a lot of change in the last two months, and
> the documentation is still reeling from the changes. We're working to
> make the install process less painful--thanks to everybody who sent in
> feedback.

And your hard work is greatly appreciated.  I can't *imagine* installing
without your docs!  I've read them and reread them numerous times to get
things straight.  (Let me know if you want specific comments.)

Anyway, thanks for your response.

--Avi

p.s.  After I installed v3, I found that
/usr/lib/libstdc++-libc6.1-1.so.2
      had been removed.  I couldn't find any reference to that file in
the
      v3 source tree, but it could have been wiped by one of the 2.95.2
      RPMs.  Unfortunately it's needed for groff, which is used by
man(1).
      Anyway, any help is appreciated; if the problem was caused by some
      other install, I apologize in advance for bothering you.

$ man g++
/usr/bin/groff: error in loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file
or directory
/usr/bin/gtbl: error in loading shared libraries:
libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file
or directory

$ ldd /usr/bin/groff
	libstdc++-libc6.1-1.so.2 => not found
	libm.so.6 => /lib/libm.so.6 (0x40018000)
	libc.so.6 => /lib/libc.so.6 (0x40034000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)




=========  Avi Green :) (: www.sputnik7.com  =========
=    Junior Unix S/A       Novice System Specialist  =
========  avi at sputnik7.com   212 217-1147  ========

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-28 12:44   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Alexandre Oliva
  2000-03-28 23:30     ` Avi Green
@ 2000-04-01  0:00     ` Alexandre Oliva
  1 sibling, 0 replies; 10+ messages in thread
From: Alexandre Oliva @ 2000-04-01  0:00 UTC (permalink / raw)
  To: Avi Green
  Cc: Benjamin Kosnik, libstdc++-v3 Development List,
	GCC Installation Help List

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]

On Mar 27, 2000, Avi Green <avi-nospam@sputnik7.com> wrote:

> p.s.  After I installed v3, I found that
> /usr/lib/libstdc++-libc6.1-1.so.2 had been removed.  I couldn't find
> any reference to that file in the v3 source tree, but it could have
> been wiped by one of the 2.95.2 RPMs.

You should certainly arrange for this file not to be removed, even if
you upgrade libstdc++.  Did you upgrade libstdc++ using RPM?  There
must be a way to arrange for it to upgrade a package without removing
the previous version's libraries.

-- 
Alexandre Oliva    Enjoy Guaraná, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat)
  2000-03-28 23:30     ` Avi Green
  2000-03-29 12:14       ` Avi Green
@ 2000-04-01  0:00       ` Avi Green
  1 sibling, 0 replies; 10+ messages in thread
From: Avi Green @ 2000-04-01  0:00 UTC (permalink / raw)
  To: GCC Installation Help List
  Cc: libstdc++-v3 Development List, Bernhard Rosenkraenzer

Alexandre Oliva wrote:

> > p.s.  After I installed v3, I found that
> > /usr/lib/libstdc++-libc6.1-1.so.2 had been removed.  I couldn't find
> > any reference to that file in the v3 source tree, but it could have
> > been wiped by one of the 2.95.2 RPMs.
> 
> You should certainly arrange for this file not to be removed, even if
> you upgrade libstdc++.  Did you upgrade libstdc++ using RPM?  There
> must be a way to arrange for it to upgrade a package without removing
> the previous version's libraries.

After two days of blindly scavenging all of my packages and logs,
I have finally realized (at 1 AM) that I was looking for the wrong
file all along: /usr/lib/libstdc++-libc6.1-1.so.2 is a symbolic link
to libstdc++-2-libc6.1-1-2.9.0.so on my system, and it's actually
the latter file which is gone.  Apparently it was removed by the
postinstall script from gcc-c++-2.95.2-3.i386.rpm as part of its
half-successful attempt to remove egcs-c++ from my system.  It also
upgraded my libstdc++-2-libc6.1-1-2.*.*.a and libstdc++-libc6.1-*.a.*.

So:  What should I do?  Should I look for an old copy of the
libstdc++-libc6.1-1.so.2 file on the 'net and just and paste it back
into /usr/lib?  A good deal of the commands on my system require it.
One idea: I observe that the gcc-c++ RPM info says that it "does
include the static standard C++ library and C++ header files; the
library for dynamically linking programs is available separately."
Perhaps that would solve the problem?  Or is this something I can
solve by pointing the libstdc++-libc6.1-1.so.2 symlink somewhere
else or by setting LD_LIBRARY_PATH?

Any help would be appreciated.

Thanks again,
Avi

p.s.  I couldn't find any mention of this in either the gcc docs or the
      libstdc++ docs.  One or two messages in the gcc-help list archive
      seemed vaguely related, but no dice.

p.p.s. For those interested, I have reconstructed the steps I took
      installing gcc and libstdc++ over the last week.  You won't need
      it to help me, but since I spent a few hours trying to reconstruct
      this sequence before I knew the problem lay with my installation
      of the gcc-c++ RPM, here it is:

0. Tried (& failed) to make gcc & g++ from tarballs.  Gave up.
1. Installed libstdc++-devel-2.95.2-3.i386.rpm
   Note: Querying the package reveals that it OBSOLETES
   gcc-libstdc++-devel
2. Tried to install gcc-2.95.2-3.i386.rpm but was told I needed an
   up-to-date version of binutils (and cpp?)
3. Tried to install cpp-2.95.2-3.i386.rpm but was told I needed an
   up-to-date version of binutils
4. Installed binutils-2.9.4.0.6-1.i386.rpm
5. Installed cpp-2.95.2-3.i386.rpm
6. Tried to install gcc-2.95.2-3.i386.rpm but was told that
   egcs = 1.1.2 is needed by egcs-c++-1.1.2-12
7. Installed gcc-2.95.2-3.i386.rpm using rpm -U --nodeps
   Note: Querying the package reveals that it OBSOLETES egcs.
   This removed various files in /usr/lib/gcc-lib/i386-redhat-linux/
   egcs-2.91.66.  It also removed the egcs (1.1.2) package.
7. Installed gcc-c++-2.95.2-3.i386.rpm
   Note: Querying the package reveals that it OBSOLETES egcs-c++.
   Interestingly, my installation log for this RPM reveals that
   libstdc++-libc6.1-1.so.2, the missing file, is a dependency:
     D: dependencies: looking for libstdc++-libc6.1-1.so.2
     ...
     D: removing provides index for libstdc++-libc6.1-1.so.2
     D: removing provides index for libstdc++-libc6.1-1.so.2
        (GCC.INTERNAL)
   Apparently this removed the egcs-c++ package, which contained
   libstdc++-2-libc6.1-1-2.9.0.so
8. Made and installed libstdc++-2.90.8 from tarball.
   Played with the links.
9. Discovered that the man(1) command no longer worked because
   libstdc++-2-libc6.1-1-2.9.0.so (a.k.a. libstdc++-libc6.1-1.so.2)
   was no longer on the system.
   

=========  Avi Green :) (: www.sputnik7.com  =========
========     Unix S/A & System Specialist     ========
========  avi at sputnik7.com   212 217-1147  ========

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2000-04-01  0:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <Pine.SOL.3.91.1000327114055.13734A-100000@cse.cygnus.com>
2000-03-27 14:52 ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Avi Green
2000-03-27 21:34   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (RedHat) llewelly
2000-04-01  0:00     ` llewelly
2000-03-28 12:44   ` Case history: Installing libstdc++ on i686-pc-linux-gnu (Red Hat) Alexandre Oliva
2000-03-28 23:30     ` Avi Green
2000-03-29 12:14       ` Avi Green
2000-04-01  0:00         ` Avi Green
2000-04-01  0:00       ` Avi Green
2000-04-01  0:00     ` Alexandre Oliva
2000-04-01  0:00   ` Avi Green

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).