Date: Sun, 21 Dec 2008 11:34:57 -0800 From: Chris <eagletree@hughes.net> To: FreeBSD-Questions Questions <freebsd-questions@freebsd.org> Subject: [solved] Re: Linking libraries for compat_linux Message-ID: <A8108BBE-B91C-4DC0-A0E7-E8D8D428E631@hughes.net> In-Reply-To: <34058EDE-BC14-4DCC-AF3C-100F77DEE486@hughes.net> References: <34058EDE-BC14-4DCC-AF3C-100F77DEE486@hughes.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 19, 2008, at 9:46 AM, Chris wrote: > I've bumped into a library I can't resolve and I must have a > disconnect > in how the linux_compat works because I can't see how it could be > solved. > I found that using FreeBSD Port fam for the daemon with openSUSE 10 fam 2.7.0 for my /compat/linux/lib/libfam.so* worked. Other fam versions from other linux distributions failed. I'm able to detect file changes with a linux binary that employs libfam.so. I tested it using the fileschanged application provided with the linux fam version. qbmonitord also works with this configuration. > I have the following: > * compat_linux enabled in the kernel, > * /usr/ports/emulators/linux_base_fc7 > * sysctl kern.fallback_elf_brand=3 > * rpm2cpio to alter rpms > * cpio to create the directories and place the files where they > belong in /compat/linux. > > I have a program that now has all it's libraries resolved but one in > preparation to attempt to run the Linux Quickbooks install on FreeBSD. > The ldd output, prior to installing /usr/ports/devel/fam (a > required shared > library) looks like this. > > ldd ./opt/qbes7/util/qbmonitord > ./opt/qbes7/util/qbmonitord: > libfam.so.0 => not found > libpthread.so.0 => /lib/libpthread.so.0 (0x28072000) > libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x28088000) > libm.so.6 => /lib/libm.so.6 (0x28171000) > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28198000) > libc.so.6 => /lib/libc.so.6 (0x281a4000) > /lib/ld-linux.so.2 (0x28054000) > > I install fam to get rid of the not found, perform the following link: > ln /usr/local/lib/libfam.so.0 /compat/linux/lib/libfam.so.0 > > and then I get this: > > ldd ./opt/qbes7/util/qbmonitord > ./opt/qbes7/util/qbmonitord: > ./opt/qbes7/util/qbmonitord: error while loading shared libraries: / > lib/libfam.so.0: ELF file OS ABI invalid > ./opt/qbes7/util/qbmonitord: exit status 127 > > which kind of makes sense since this library is not a linux > library. I'd read > that I don't need to brandelf -t linux a library but I tried that > anyway, > realizing it was likely meaningless (or harmful). It didn't help of > course. > > My next thought was to try and get a libfam.so.0 binary from a > linux distro > but stopped when it occurred to me that it would be illogical since > fam uses > kqueue on FreeBSD rather than something called imon. imon is not > available > for FreeBSD so a linux version shouldn't be able to function if it > expects that. On > FreeBSD, fam configures itself to not use imon. > > What is the appropriate course of action to get a linux flavor > shared library > for fam (or anything which runs into such conflicts) that will work > on FreeBSD > yet be recognized as suitable for linux under the compat mode? > > > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions- > unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A8108BBE-B91C-4DC0-A0E7-E8D8D428E631>