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-gnome mailing list