Date: Sun, 26 Jun 2005 22:25:01 +0400 From: Vladimir Grebenschikov <vova@fbsd.ru> To: jaco@coocoo.za.net Cc: freebsd-emulation@freebsd.org Subject: Re: [Linux] Loading Linux modules in Apache? Message-ID: <1119810301.1100.5.camel@localhost> In-Reply-To: <2943.196.37.144.98.1119808764.squirrel@webmail.premsoft.co.za>
index | next in thread | previous in thread | raw e-mail
В вс, 26/06/2005 в 19:59 +0200, jaco@coocoo.za.net пишет: > Hello All, > > I am trying to load a Linux module in Apache 2.0.53, but I am running into > some problems. > > I am not sure if this is even possible, but I sure hope so. ;) I guess you have some choices: - (easyest) Install linux apache and run whole beast under linux emulation - (much harder) You can try to mix ABI in single binary (just like win or mplayer does with windows DLLs) but, it is not easy task - write module wrapper for apache, it will consist of two parts - one FreeBSD binary (loaded into bsd apache), another - linux (it part will load your linux apache module). Parts should be connected by some IPC and apache module interface should be exported via this IPC. > This is the scenario: > I have a precompiled linux DSO module for Apache 2. This module loads fine > on Linux, but pukes when I try to load it on FreeBSD. > > First of all a question: Is there any special setting that I must change > in order for apache to use be able to see the shared libraries that is in > the linux directectory? This directory is located in /usr/compat/linux/. > > The module is branded as Linux. > > When I try to load the module in Apache it complains about shared > libraries not being found. These libraries exist in /usr/compat/linux/lib > and /usr/compat/linux/usr/lib. They also work for the other linux > applications that I run, ie, they are found. > > I also tried to link the libs in /usr/compat/linux/lib to /usr/lib. I KNOW > that this can not be the right way to do it, but this sort of worked (no > more shared library not found), but then the module groaned about some > undefined symbols. I think this is because it finds some OTHER module with > the same name as the one it's linked against in linux and then cannot find > the stuff it is looking for. Here is the exact error message: > Syntax error on line 1108 of /usr/local/etc/apache2/httpd.conf: > Cannot load /usr/local/libexec/apache2/mod_V2_mgrequest94.so into server: > /usr/local/libexec/apache2/mod_V2_mgrequest94.so: Undefined symbol > "__gxx_personality_v0" > > Here is the output of ldd: > root@disco-bear# ldd /usr/local/libexec/apache2/mod_V2_mgrequest94.so > /usr/local/libexec/apache2/mod_V2_mgrequest94.so: > libpthread.so.0 => /usr/local/lib/libpthread.so.0 (0x281b3000) > libstdc++.so.3 => /usr/lib/compat/libstdc++.so.3 (0x28204000) > libm.so.6 => /usr/local/lib/libm.so.6 (0x28249000) > libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0x2826a000) > libc.so.6 => /usr/local/lib/libc.so.6 (0x28272000) > ld-linux.so.2 (0x2839d000) > libm.so.2 => /usr/lib/compat/libm.so.2 (0x283b0000) > > (some of these are symlinked to /usr/compat/linux/lib) > > Is there anything special that I must do to be able to load this module in > Apache? > > OS: FreeBSD 5.4-RELEASE > Apache: 2.0.53 > Linux Base: Redhat 7.2 > > Thank you in advance for your help. > ---Jaco > _______________________________________________ > freebsd-emulation@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-emulation > To unsubscribe, send any mail to "freebsd-emulation-unsubscribe@freebsd.org" -- Vladimir B. Grebenschikov vova@fbsd.ruhelp
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1119810301.1100.5.camel>
