Discussion:
First Posting - GLIBC question
(too old to reply)
Brad Jennings
2005-07-22 17:22:54 UTC
Permalink
In order to install some software I need "glibc 2.1", "Glib 1.2.x" and
"Libstdc++ 2.9.0". It seems there is a relationship between the library
filenames in my "/lib" directory and the "common names" given above. How
can I determine the "common name" and file version relationship on my PC?

I am running Slackware v8.1 on it. I have used 'ldconfig -V' to get
"ldconfig (GNU libc) 2.2.3" as a response. Which *lib* is this, and what
is its common name? I have also seen references to "glibc2" in some
documentation.

1) What is the difference between GNU libc, glibc, Glib, glibc2, and
libstdc++?

2) Is there an easy command to show the *lib" version and determine the
common name? For example, I can use 'uname -a' to get a lot of info
about the linux kernel version.

I hope I have addressed this question to the right group. If not, shunt
me to the correct group please.


TIA
Lew Pitcher
2005-07-23 01:16:00 UTC
Permalink
Post by Brad Jennings
In order to install some software I need "glibc 2.1", "Glib 1.2.x" and
"Libstdc++ 2.9.0". It seems there is a relationship between the library
filenames in my "/lib" directory and the "common names" given above. How
can I determine the "common name" and file version relationship on my PC?
I am running Slackware v8.1 on it.
Thats an /old/ Slackware. You really should upgrade if you can.
Post by Brad Jennings
I have used 'ldconfig -V' to get
"ldconfig (GNU libc) 2.2.3" as a response. Which *lib* is this, and what
is its common name? I have also seen references to "glibc2" in some
documentation.
1) What is the difference between GNU libc, glibc, Glib, glibc2, and
libstdc++?
GNU libc is glibc. glibc2 is v2 of glibc. /lib/libc.so.6 is the library that
implements glibc. You can check out which version, exactly, of glibc2 (aka
glibc aka GNU libc) libc.so.6 implements by /running/ libc.so.6
~ $ /lib/libc.so.6
GNU C Library stable release version 2.3.4, by Roland McGrath et al.

glib is the GTK support library (GTK being the Gimp ToolKit, the graphics
widgets used by the Gimp, and the basis for the graphics of the Gnome
desktop). /usr/lib/libglib* are the libraries (there are more than one,
depending on whether you have glib v1 or glib v2 or both installed).

libstdc++ is the C++ standard I/O library. It is used by any C++ program
compiled with the G++ GNU C++ compiler. It contains the common C++ routines
required for conformance to the C++ standard. You'll find this library as
/usr/lib/libstdc++* (again, there are a few variations, depending on your
linkage requirements and the version of G++ used to compile the C++ programs).
Post by Brad Jennings
2) Is there an easy command to show the *lib" version and determine the
common name? For example, I can use 'uname -a' to get a lot of info
about the linux kernel version.
Take a look at the package descriptions in /var/adm/packages. grep for the
library you are interested in to locate the package (IIRC, Slackware 8.1 still
used the 8.3 TGZ package naming format, so the package names aren't very
descriptive), and read the description text in the package file that
implements the library.

Other than that, your next best bet is "ldconfig -v"

And, some libraries will "execute" (like the glibc example above) and tell you
their version info.
Post by Brad Jennings
I hope I have addressed this question to the right group. If not, shunt
me to the correct group please.
This is as good a group as any. You might also want to ask your Slackware
related questions in alt.os.linux.slackware, or join the #slackware IRC group

- --
Lew Pitcher

Master Codewright & JOAT-in-training | GPG public key available on request
Registered Linux User #112576 (http://counter.li.org/)
Slackware - Because I know what I'm doing.
Brad Jennings
2005-07-25 14:25:07 UTC
Permalink
Lew,

Thanks very much for the response. It really helped. I imagine there is
no difference between writing "glib" or "Glib" when speaking or
communicating to someone else about the GTK libraries. I imagine the
difference would only matter when communicating the text to the
case-sensitive user-interface. Is this correct?

Also, in most correspondence, reference to "glibc" imply "glibc2" or
"GNU libc v2" because it is the libraries most current, and hopefully,
most commonly used library. Is this correct?

Why the naming convention "libc.so.6"? What does the "6" mean? I assume
it is some internal revision number, but I could be wrong. Shouldn't it
be libc.so.2.2.3, or something similar?
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Post by Brad Jennings
I am running Slackware v8.1 on it.
Thats an /old/ Slackware. You really should upgrade if you can.
I'm using old hardware, so slackware 8.1 seemed appropriate for the
environment.
Post by Brad Jennings
1) What is the difference between GNU libc, glibc, Glib, glibc2, and
libstdc++?
GNU libc is glibc. glibc2 is v2 of glibc. /lib/libc.so.6 is the library that
implements glibc. You can check out which version, exactly, of glibc2 (aka
glibc aka GNU libc) libc.so.6 implements by /running/ libc.so.6
~ $ /lib/libc.so.6
GNU C Library stable release version 2.3.4, by Roland McGrath et al.
I got this:
--------------------------------------------------------------------------------
***@bifrost:~$ /lib/libc.so.6
GNU C Library stable release version 2.2.3, by Roland McGrath et al.
Copyright (C) 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 2.95.3 20010315 (release).
Compiled on a Linux 2.4.4 system on 2001-05-25.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
linuxthreads-0.9 by Xavier Leroy
BIND-8.2.3-T5B
libthread_db work sponsored by Alpha Processor Inc
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Report bugs using the `glibcbug' script to <***@gnu.org>.
***@bifrost:~$
--------------------------------------------------------------------------------
glib is the GTK support library (GTK being the Gimp ToolKit, the graphics
widgets used by the Gimp, and the basis for the graphics of the Gnome
desktop). /usr/lib/libglib* are the libraries (there are more than one,
depending on whether you have glib v1 or glib v2 or both installed).
Nothing shows up when I do this:

--------------------------------------------------------------------------------
***@bifrost:/usr/lib$ ls *glib*
/bin/ls: *glib*: No such file or directory
***@bifrost:/usr/lib$
--------------------------------------------------------------------------------
I guess I need to install that package, or download it from Gimp's
website (if that's possible).
libstdc++ is the C++ standard I/O library. It is used by any C++ program
compiled with the G++ GNU C++ compiler. It contains the common C++ routines
required for conformance to the C++ standard. You'll find this library as
/usr/lib/libstdc++* (again, there are a few variations, depending on your
linkage requirements and the version of G++ used to compile the C++ programs).
I need Libstdc++ 2.9.0, but it looks like I have
libstdc++-3-libc6.2-2.so.3 (shared object) and
libstdc++-3-libc6.2-2.so.3 (static library). I'm not sure if this is
version 3, or v6.2-2. Does anyone know which this is?

--------------------------------------------------------------------------------
***@bifrost:/usr/lib$ ls -al *c++*
-rw-r--r-- 1 root root 2347326 May 27 2001
libstdc++-3-libc6.2-2-2.10.0.a
-r-xr-xr-x 1 root root 274724 May 27 2001
libstdc++-3-libc6.2-2-2.10.0.so*
lrwxrwxrwx 1 root root 30 Apr 21 14:47
libstdc++-libc6.2-2.a.3 -> libstdc++-3-libc6.2-2-2.10.0.a
lrwxrwxrwx 1 root root 31 Apr 21 14:47
libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so*
***@bifrost:/usr/lib$
--------------------------------------------------------------------------------
Post by Brad Jennings
2) Is there an easy command to show the *lib" version and determine the
common name? For example, I can use 'uname -a' to get a lot of info
about the linux kernel version.
Take a look at the package descriptions in /var/adm/packages. grep for the
library you are interested in to locate the package (IIRC, Slackware 8.1 still
used the 8.3 TGZ package naming format, so the package names aren't very
descriptive), and read the description text in the package file that
implements the library.
Other than that, your next best bet is "ldconfig -v"
And, some libraries will "execute" (like the glibc example above) and tell you
their version info.
Thanks for the tip. It appears that some will execute and tell me their
version, some others will produce a segmentation fault error.
Post by Brad Jennings
I hope I have addressed this question to the right group. If not, shunt
me to the correct group please.
This is as good a group as any. You might also want to ask your Slackware
related questions in alt.os.linux.slackware, or join the #slackware IRC group
Unfortunately, I don't think that group "alt" is available on the news
server I'm using. True, I may misunderstand how the news group hierarchy
and availability are administered. I looked for a
"comp.os.linux.slackware" to no avail, so I subscribed to
"comp.os.linux.questions".
- --
Lew Pitcher
Master Codewright & JOAT-in-training | GPG public key available on request
Registered Linux User #112576 (http://counter.li.org/)
Slackware - Because I know what I'm doing.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.7 (GNU/Linux)
iD8DBQFC4ZpQagVFX4UWr64RAgzDAJ9fiOWwSjHDyD41DzzeTsHWDXQ6kwCg2weH
pSAfa8B+nIOGFZ2tWjcLPl8=
=OAUb
-----END PGP SIGNATURE-----
Loading...