Converting libfoo.so for linux to freebsd
Norikatsu Shigemura
nork at FreeBSD.org
Thu Aug 11 18:48:08 GMT 2005
Linuxpluginwrapper(LPW) is a most famous killer application
of libmap.conf(5)! (I think:-)
On Thu, 11 Aug 2005 10:46:04 -0600 (MDT)
"M. Warner Losh" <imp at bsdimp.com> wrote:
> Here's a breif outline of what I've learned:
> (1) To remove the symbol versioning goo from a shared library,
> objcopy -R .gnu.version linux.so freebsd.so
> (there's also a .gnu.version_r on some libraries, that can
> also be removed this way). Doing this allows one to directly
> link the .so into your program, modulo ABI issues.
Humm, When I made LPW, I didn't have a trouble about symbol
versioning. I think no need objcopy.
> (2) dlopen (and likely ld-elf.so in general) doesn't check the
> version information at all. If all you are doing is linking
> dynamically at run time, you don't have to perform step #1.
> The compile time linker, however, whines about missing symbol
> versions.
> (3) Use libmap.conf to map libc.so.6 for the shared library
> that you are loading to overcome ABI issues. See the man page
> for an example.
Humm.. I have no comment.
> The linuxplugwrapper port can be used to generate shims for the ABI
> issues, in general, and works well. I'll likely not use it for the
> brother scanner port I'm working on since all I need is stderr defined
> in a linuxly correct, and I can do that in the source part of the
> driver. I'd love to get the network side of things working, but I
> think that might be more effort than I care to go to at the moment.
> I'd also like to get faxing and printing working, but again, time...
> I bought it for the 35 sheet document feeder + scanner at $100.00
> after rebate :-)
LPW has a FORCE ABOUTER[TM:-)].
$ cd /usr/ports/www/linuxpluginwrapper
$ make extract
$ cd work/linuxpluginwrapper-20050613
$ make dummy.c TARGET_PLUGIN=LINUX_SHARED_LIBRARY_YOU_WANT.so
$ mv dummy.c dummy_APPLICATION_NAME.c
please add dummy_APPLICATION_NAME.o and related macros to
Makefile on top directory.
So you can develop pluginwrapper like acrobat/flash7/realplayer
support:-).
More information about the freebsd-hackers
mailing list