[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