[mod_python] Mod_Python Make fails on Solaris 9

Graham Dumpleton grahamd at dscpl.com.au
Tue Feb 27 20:19:46 EST 2007


On 28/02/2007, at 11:17 AM, Jose De Leon wrote:

> I am about to rip my hair off! ... l been trying to figure out what  
> is causing this compile problem any pointers or help in the right  
> direction would be much appreciated. l have Apache 2.2.4 and are  
> compiling Mod_Python with apxs
>
> strcat                              0xff0       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(import.o)
> strcat                              0xffc       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(import.o)
> strcat                              0x8f4       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x900       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x914       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x93c       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x948       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x990       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x99c       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x9ac       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x12d0      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x1538      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x1858      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(getpath.o)
> strcat                              0x66c       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(complexobject.o)
> strcat                              0x790       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(complexobject.o)
> strcat                              0x8a8       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(complexobject.o)
> unlink                              0x5910      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(import.o)
> unlink                              0x59b0      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(import.o)
> unlink                              0x15a8      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(posixmodule.o)
> unlink                              0x15ac      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(posixmodule.o)
> fseek                               0x59e8      /usr/local/lib/ 
> python2.5/config/libpython2.5.a(import.o)
> fseek                               0x48        /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
> fseek                               0x148       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
> fseek                               0x170       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
> fseek                               0x1ec       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
> fseek                               0x478       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
> fseek                               0x4a4       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
> fseek                               0x50c       /usr/local/lib/ 
> python2.5/config/libpython2.5.a(zipimport.o)
>
> ld: fatal: relocations remain against allocatable but non-writable  
> sections
> collect2: ld returned 1 exit status
> apxs:Error: Command failed with rc=65536
> .
> *** Error code 1
> make: Fatal error: Command failed for target `mod_python.so'
> Current working directory /tmp/mod_python-3.3.1/src
> *** Error code 1
> make: Fatal error: Command failed for target `do_dso'

On Solaris, if libtool can only find a static version of library, it  
needs to be coaxed into
using it by ensuring the option:

   -mimpure-text

is supplied to the linker.

I'm away from work so can't tell you where within makefiles or  
otherwise you'll need to
add this manually.

For some details see:

   http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01815.html

Note the section about copy on write and stuff no longer acting like  
shared objects.
This can mean that each Apache child process can end up being quite a  
lot bigger
than it needs to as mod_python.so acts like a static object and not a  
shared object.
Since the Python library is static it ends up being a part of the  
mod_python.so as well
which just makes non shared memory used even more.

You should consider look at rebuilding Python and configure it to  
generate a shared
library instead of a static if memory consumption is an issue.

Graham




More information about the Mod_python mailing list