Can ldd(1) list non-FreeBSD dynamic object dependencies?
Norikatsu Shigemura
nork at FreeBSD.org
Fri Oct 14 17:41:49 PDT 2005
Hi FreeBSD hackers!
I think that ldd(1) may list non-FreeBSD dynamic object
dependencies. Do you think?
If ldd(1) can list these, Linux Plugin Wrapper is more
interested. Because you can confirm LPW enabled by ldd(1)
like following lines:
$ ldd /usr/X11R6/lib/linux-flashplugin6/libflashplayer.so
ldd: /usr/X11R6/lib/linux-flashplugin6/libflashplayer.so: not a FreeBSD ELF shared object(OS type=0)
/usr/X11R6/lib/linux-flashplugin6/libflashplayer.so:
libpthread.so.0 => /usr/local/lib/pluginwrapper/flash6.so (0x68391000)
libz.so.1 => /lib/libz.so.3 (0x68394000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x683a5000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x68471000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x6847f000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++.so.5 (0x684d1000)
libm.so.6 => /lib/libm.so.4 (0x685a4000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x685bb000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x685c4000)
In ldd(1)'s current source #178 lines:
>>if (hdr.elf.e_ident[EI_OSABI] & ELFOSABI_FREEBSD) {
I think & is a typo. It sould be ==. And I suggest following
code:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
} else if (hdr.elf.e_type == ET_DYN) {
is_shlib = 1;
if (hdr.elf.e_ident[EI_OSABI] != ELFOSABI_FREEBSD) {
warnx("%s: not a FreeBSD ELF shared "
"object(OS type=%d)", *argv, hdr.elf.e_ident[EI_OSABI]);
/+ file_ok = 0; */
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
More information about the freebsd-hackers
mailing list