How can you determine installed versions of the glibc libraries?

cross-compiling, gcc, gnu, linux

Solution

For glibc:

`/lib/libc.so.6`

Sounds maybe strange to run a so file but should print out version information in this case

For the kernel version use `uname`

For the binutils parsing the output of `ld --version`might yield what you expect, the same for `gcc --version`. This is a bit tedious but I do not know another way.

Problem

I'm working with an embedded Linux deployment and am using a cross compiler tool chain that doesn't compile I2C library function calls. How do I determine the precise versions of the libraries on the system so that I may rebuild the tool chain? I don't intend to replace the libraries deployed, as I do know they work (including I2C), so I believe I need the following: - Binutils version - GCC version - GLIBC - Kernel (for the headers) I think I can assume from the following that the binutils library is version 2.2.5. The kernel is modded for which I've the source. ``` root@dev-box />ls /lib/ -al drwxrwxrwx 3 root root 1024 Apr 27 09:44 . drwxrwxrwx 14 root root 1024 Jan 1 1970 .. -rwxrwxrwx 1 root root 105379 Jan 1 1970 ld-2.2.5.so lrwxrwxrwx 1 root root 16 Jan 1 1970 ld-linux.so.2 -> /lib/ld-2.2.5.so lrwxrwxrwx 1 root root 16 Jan 1 1970 ld.so.1 -> /lib/ld-2.2.5.so -rwxrwxrwx 1 root root 1288601 Jan 1 1970 libc.so.6 -rwxrwxrwx 1 root root 25441 Jan 1 1970 libcrypt.so.1 -rwxrwxrwx 1 root root 14303 Jan 1 1970 libdl.so.2 -rwxrwxrwx 1 root root 36800 Jan 1 1970 libgcc_s.so.1 -rwxrwxrwx 1 root root 530401 Jan 1 1970 libm.so.6 -rwxrwxrwx 1 root root 86626 Jan 1 1970 libnsl.so.1 -rwxrwxrwx 1 root root 17533 Jan 1 1970 libnss_dns.so.2 -rwxrwxrwx 1 root root 46324 Jan 1 1970 libnss_files.so.2 -rwxrwxrwx 1 root root 98633 Jan 1 1970 libpthread.so.0 -rwxrwxrwx 1 root root 69966 Jan 1 1970 libresolv.so.2 -rwxrwxrwx 1 root root 12897 Jan 1 1970 libutil.so.1 ```

Original source