What does the address indicated in parentheses mean (for example, (0x002de000))?
This is the (virtual) memory address into which the library is loaded. A recent system can randomize where libraries are loaded, so this address may vary between calls.
shouldn't they only load at run time?
Yes they are. ldd goes through most of the same procedure as at run time to understand various things.
Why do two need any libraries?
libc.so.6 is the standard C library (and other things, such as the kernel interface) and is always bundled by default. gcc has options to control this, for example, the -nostdlib flag
ld-linux.so is a dynamic bootloader, and it is responsible for loading / moving other shared libraries and launching your application. The man page for ld-linux.so gives you detailed information.
linux-gate.so.1 is a virtual library, it exists only in memory in the kernel. It was used to make kernel system calls, and figure out the most efficient way to do this based on your processor. This was probably added in linux later than your other 2.6.9 kernel machine.
I don't know what /usr/lib/libcwait.so is, but most likely you can get some information about this by running rpm -qif / usr / lib / libcwait.so
source share