Hi David, 

what server model implements your Apache instance? Rivet
for Apache2 works only on Apache using prefork as mpm, 
this is important. I recently installed an apache-worker
instance and had several severe errors occurring at runtime.

 -- Massimo

P.S. I know: we got to rewrite those installation pages....

On Mon, 10 Dec 2007 13:37:01 +0100, David Zolli wrote
> I was able to go a bit further.
> 
> First of all, I uncomment line 58 in src/apache-2/mod_rivet.c and  
> comment line 57 in src/apache-2/mod_rivet.h and then the duplicate  
> symbol error disapears.
> 
> After that, I discovered my apache requires x86_64 libraries, so I  
> rebuild all like that:
> 
> export LDFLAGS="-arch x86_64"
> export CFLAGS="-arch x86_64"
> make clean
> ./configure --with-apache-version=2 --prefix=/usr --enable-symbols --
>  with-apache=/usr make make install
> 
> This time apache2 can load rivet but Tcl can't because tclsh is i386  
> (don't ask me why apple do that):
> 
> bash-3.2# file /usr/sbin/httpd
> /usr/sbin/httpd: Mach-O universal binary with 4 architectures
> /usr/sbin/httpd (for architecture ppc7400):   Mach-O executable ppc
> /usr/sbin/httpd (for architecture ppc64):     Mach-O 64-bit executable ppc64
> /usr/sbin/httpd (for architecture i386):      Mach-O executable i386
> /usr/sbin/httpd (for architecture x86_64):    Mach-O 64-bit executable  
> x86_64
> bash-3.2# file /usr/bin/tclsh8.4
> /usr/bin/tclsh8.4: Mach-O universal binary with 2 architectures
> /usr/bin/tclsh8.4 (for architecture ppc7400): Mach-O executable ppc
> /usr/bin/tclsh8.4 (for architecture i386):    Mach-O executable i386
> 
> The side effect is all libraries loaded by rivet must be universal  
> binary with at least i386 and x86_64. So, I first tried to rebuild 
> all  for multiple arch:
> 
> export LDFLAGS="-arch x86_64 -arch i386"
> export CFLAGS="-arch x86_64 -arch i386"
> make clean
> ./configure --with-apache-version=2 --prefix=/usr --enable-symbols --
>  with-apache=/usr make
> 
> But i fails with this error:
> gcc-4.0: -E, -S, -save-temps and -M options are not allowed with  
> multiple -arch flags
> 
> So, I copy all x86_64 library to /tmp and I rebuild all for i386:
> 
> export LDFLAGS="-arch i386"
> export CFLAGS="-arch I386"
> make clean
> ./configure --with-apache-version=2 --prefix=/usr --enable-symbols --
>  with-apache=/usr make make install
> 
> Then I add x86_64 using lipo:
> lipo -create /usr/libexec/apache2/mod_rivet.so     /tmp/ 
> mod_rivet.so      -output /usr/libexec/apache2/mod_rivet.so
> lipo -create /usr/lib/rivet0.8.0/librivet.so       /tmp/ 
> librivet.so       -output /usr/lib/rivet0.8.0/librivet.so
> lipo -create /usr/lib/rivet0.8.0/librivetparser.so /tmp/ 
> librivetparser.so -output /usr/lib/rivet0.8.0/librivetparser.so
> 
> Last thing, I have to edit /usr/lib/rivet0.8.0/packages/tclrivet/ 
> tclrivet.tcl to change:
> 
> load [file join [file dirname [info script]] .. .. .. src \
>            librivetparser[info sharedlibextension]]
> to:
> 
> load [file join [file dirname [info script]] .. .. \
>            librivetparser[info sharedlibextension]]
> 
> This time rivet could be loaded by apache2 and tclsh. Alas, when I 
> try  to load a .rvt file I get this in error_log:
> 
> [Mon Dec 10 12:52:38 2007] [notice] child pid 63165 exit signal  
> Segmentation fault (11)
> 
> I guess this mean rivet crashed, but I haven't time to instrospect  
> where and why right now (I have payjob to finnish before).
> 
> Anyway, I hope this will help you.
> 
> Regards,
> 
> -- 
> David Zolli
> [EMAIL PROTECTED]
> http://www.kroc.tk
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to