Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 667 - libstdc++-2.9.0 depends on GLIBC 2.1
Summary: libstdc++-2.9.0 depends on GLIBC 2.1
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: egcs
Version: 1.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nalin Dahyabhai
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 1999-01-02 01:29 UTC by jehamby
Modified: 2008-05-01 15:37 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 1999-01-04 23:58:25 UTC


Attachments (Terms of Use)

Description jehamby 1999-01-02 01:29:05 UTC
Installing the libstdc++.2.9.0 RPM didn't require me to
upgrade my glibc, even though it should require GLIBC 2.1,
as evidenced by the many symbols that reference it:

$ nm /usr/lib/libstdc++.so.2.9.0 | grep GLIBC_2.1
         U _IO_do_write@@GLIBC_2.1
         U _IO_file_attach@@GLIBC_2.1
         U _IO_file_close_it@@GLIBC_2.1
         U _IO_file_fopen@@GLIBC_2.1
         U _IO_file_init@@GLIBC_2.1
         U _IO_file_overflow@@GLIBC_2.1
         U _IO_file_seekoff@@GLIBC_2.1
         U _IO_file_setbuf@@GLIBC_2.1
         U _IO_file_sync@@GLIBC_2.1
         U _IO_file_underflow@@GLIBC_2.1
         U _IO_file_write@@GLIBC_2.1
         U _IO_file_xsputn@@GLIBC_2.1
         U _IO_getline_info@@GLIBC_2.1
         U _IO_proc_close@@GLIBC_2.1
         U _IO_proc_open@@GLIBC_2.1
         U _sys_nerr@@GLIBC_2.1
         U fclose@@GLIBC_2.1
         U sys_nerr@@GLIBC_2.1

I had already upgraded GLIBC because the KDE packages
required it for other reasons, so I haven't tried to link
against libstdc++.so.2.9.0 with the old library, but I
expect it could crash, especially if you call I/O methods.
You should upgrade the dependency information in the EGCS
RPM to make it explicit that GLIBC 2.1 is required to
install libstdc++.

This brings me to a related point:  I had already compiled
EGCS 1.1.1 from source against GLIBC 2.0, then discovered
that my C++ binaries crashed when I installed the libstdc++
RPM from RawHide.  Similarly, new binaries wouldn't link to
code which had been compiled against the old EGCS headers.
The culprit seems to be the lines in
/usr/include/g++/streambuf.h which check the GLIBC version:

#if _G_IO_IO_FILE_VERSION == 0x20001

These actually cause a different (and incompatible) library
to be built on GLIBC 2.0 and GLIBC 2.1 systems.  This is
really unfortunate, but I guess the best thing to do is make
it explicit in the RPM that libstdc++-2.9.0 requires GLIBC
2.1, especially since nobody has yet shipped a Linux
distribution which includes libstdc++.so.2.9.0 compiled
against GLIBC 2.0.  Unfortunately, people who compile EGCS
1.1.1 from source (or install Linux binaries from others)
risk having to recompile all of their C++ code when they
upgrade to RawHide, so this becomes a big documentation
problem as well!  What a mess...

Comment 1 Cristian Gafton 1999-01-04 17:46:59 UTC
stuff build against glibc 2.1 is not backwards compatible with glibc
2.0. Period.

Comment 2 Aleksey Nogin 1999-01-04 23:02:59 UTC
I believe that was the whole point - stuff build against glibc 2.1 is
not backwards compatible with glibc 2.0, so it should have
Requires: glibc >= 2.1
in the SPEC file.

Comment 3 jehamby 1999-01-04 23:17:59 UTC
That was exactly my point - stuff build against glibc 2.1 is
not backwards compatible with glibc 2.0, so it should have
Requires: glibc >= 2.1
in the SPEC file.

Comment 4 Cristian Gafton 1999-01-04 23:58:59 UTC
glibc 2.1 was not yet released; starting to insert dependencies now
will only hurt things (get people confused as to 'where is glibc 2.1
released'?); this is rawhide after all.


Note You need to log in before you can comment on or make changes to this bug.