Date: Tue, 17 Jan 2006 21:35:18 +0900 From: Norikatsu Shigemura <nork@FreeBSD.org> To: Ondra Knezour <knezour@weboutsourcing.cz> Cc: freebsd-emulation@FreeBSD.org, nork@FreeBSD.org Subject: Re: Using Linux shared libraries Message-ID: <20060117213518.3f2ed1a4.nork@FreeBSD.org> In-Reply-To: <43CC25BD.3070100@weboutsourcing.cz> References: <43CC25BD.3070100@weboutsourcing.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 17 Jan 2006 00:01:17 +0100 Ondra Knezour <knezour@weboutsourcing.cz> wrote: > Tried to brand them as linux binaries as first step, but this solution > wasn't successfull, as expected. Later I found some discussion > confirming my expectation, that this mixing of bsd and linux binaries is > simply impossible. Yes, really exactly! > Then I tried to make plugin wrapper using www/linuxpluginwrapper port with > make dummy.c TARGET_PLUGIN=target_plugin_path > mv dummy.c debug/dummy_plugin_name.c > add plugin to Makefile and debug/Makefile.inc > make target_plugin install To do a try and error, dummy.c is a template file. > for both plugin files. I got two requested files installed, created > symlink to them form Firebird UDF directory, but I haven't any succes to > run Firebird server with them. Server is randomly not responding, dying > silently, sometimes with ERR10 - No child process (watched with truss). > My questions: > Is there some usefull reading about using linux plugins for bsd > applications? > Is there any how-to for linuxpluginwrapper or usefull discussion thread? No. If there are them, freebsd-ports@ and freebsd-emulation@ are so. > I looked at some port which use this plugin, but I don't feel myself > fully understanding this tool, especially how to found which additional > files should be specified in plugin_nameOBJ variable in Makefile. Sorry my poor Makefile:-(. > Which way is sugested for watching calls and responses between executed > binary and shared library? I use truss -fae, but there must be something > more usefull for this situation. GDB will probably do what I expect, but > if there is wide consensus about debugging this scenario, I want to know > which one it is. I use ktrace and printf(write(2)?) debug. > Another way may be possible - decompile linux file and compile it on > FreeBSD. I have some asm-like decompiled files for mentioned libraries, > but assembler isn't my best friend, so I want to ask, if this way may be > successfull and if can, which method and tools can lead to success. Maybe, license will not forbid by decompile you said. > dummy.c files generated for libraries > http://gw.weboutsourcing.cz/fb/dummy_udfs_00.c > http://gw.weboutsourcing.cz/fb/dummy_udfs_01.c dummy.c is a simple hook functions. If a function in dummy.c is called, put called function name and ASAP abort program. And you decide to write new one as Linux function <=> FreeBSD function, mutually conversion function, or pass through.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060117213518.3f2ed1a4.nork>