[uClibc] ldso/ldd question
Paul van Gool
paul.vangool at rinconnetworks.com
Fri Oct 3 16:35:35 UTC 2003
Hi,
using uClibc 0.9.21 (with gcc 3.3.1 on an SH4 platform), when using
LD_TRACE_LOADED_OBJECTS to find out what libs are being loaded, I noticed
the full path is not printed:
# LD_TRACE_LOADED_OBJECTS=1 bin/anacapad
libdl.so.0 => /libdl.so.0 (0x2956a000)
libpthread.so.0 => /libpthread.so.0 (0x2957c000)
libanacapa.so.0.1 => /libanacapa.so.0.1 (0x2959c000)
libapi.so.0.1 => /libapi.so.0.1 (0x295c5000)
libupnp.so.0.1 => /libupnp.so.0.1 (0x295ec000)
libconfigDB.so.0.1 => /libconfigDB.so.0.1 (0x2960b000)
libdiagnostics.so.0.1 => /libdiagnostics.so.0.1 (0x2966c000)
libstdc++.so.5 => /libstdc++.so.5 (0x29683000)
libm.so.0 => /libm.so.0 (0x2970c000)
libc.so.0 => /libc.so.0 (0x29729000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x29556000)
I can trace this back to line 1071 in dlso.c:
if (_dl_trace_loaded_objects && tpnt1->usage_count==1) {
name = _dl_get_last_path_component(tpnt1->libname);
_dl_dprintf(1, "\t%s => %s (%x)\n", lpntstr, --name, <-- line 1071
(unsigned) tpnt1->loadaddr);
}
By replacing '--name' with 'tpnt1->libname' I get the desired output:
# LD_TRACE_LOADED_OBJECTS=1 ./anacapad
libdl.so.0 => /lib/libdl.so.0 (0x2956a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x2957c000)
libanacapa.so.0.1 => /opt/lib/libanacapa.so.0.1 (0x2959c000)
libapi.so.0.1 => /opt/lib/libapi.so.0.1 (0x295c5000)
libupnp.so.0.1 => /opt/lib/libupnp.so.0.1 (0x295ec000)
libconfigDB.so.0.1 => /opt/lib/libconfigDB.so.0.1 (0x2960b000)
libdiagnostics.so.0.1 => /opt/lib/libdiagnostics.so.0.1 (0x2966c000)
libstdc++.so.5 => /lib/libstdc++.so.5 (0x29683000)
libm.so.0 => /lib/libm.so.0 (0x2970c000)
libc.so.0 => /lib/libc.so.0 (0x29729000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x29556000)
Is there a reason for this call to _dl_get_last_path_component that I'm not
aware of?
Thanks.
Paul
--
Paul van Gool Rincon Networks
paul.vangool at rinconnetworks.com (805)-705-1442
More information about the uClibc
mailing list