Changes between Version 16 and Version 17 of babelbgp


Ignore:
Timestamp:
02/24/09 21:55:39 (14 years ago)
Author:
norris
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • babelbgp

    v16 v17  
    551.  First of all, I started out with the goal of getting as many languages supported as possible, including python. This meant that I had to install !NumPy first, which turned out to be nontrivial (see [wiki:ccanumpy description]). The second requirement was support for shared libraries since fully static builds are (1) less flexible; and (2) not quite fully automated for CCA components. There is also the additional danger of running out of memory because of bloated static executables. 
    66 
    7 2. As expected, GNU Autotools-based packages cannot be simply built on BG/P. First, configure does not provide good cross-compilation support, at least not good enough for BG/P. I added these settings to the llnl_cross_compiling.m4 file (right after the {{{case "$target" in}}} line: 
     72. As expected, GNU Autotools-based packages cannot be simply built on BG/P. First, configure does not provide good cross-compilation support, at least not good enough for BG/P. I added these settings to the llnl_cross_compiling.m4 file (right after the {{{case "$target" in}}} line): 
    88{{{ 
    99  powerpc64-ibm-bgp*) 
     
    3636Some additional hard-coded configure settings are discussed in this [http://www-03.ibm.com/support/techdocs/atsmastr.nsf/5cb5ed706d254a8186256c71006d2e0a/e4342b26ffc557cc862573a80019767d/$FILE/OSS_on_BGP.pdf IBM Document].  
    3737 
    38 3. I discovered that the following prerequisites were necessary: libxml2, then zlib. The former was required for Python support (so the fact that Babel includes libparsifal does not remove the dependence on libxml2 if you want Python). The latter was required by libxml2. [[BR]] 
     38While building prerequisites (see next item), I found that libtool did not support building and linking shared libraries using IBM's compilers. The perfect fix for this problem is to add BG/P support to libtool. The faster workaround was to first set an environment variable: 
     39{{{ 
     40export LDFLAGS='-G -qnostaticlink' 
     41}}} 
     42then run configure. Next we introduce an extra step before running make by using this little script on all generated libtool scripts in the build directory of the package being built 
     43{{{ 
     44#!/bin/sh 
     45 
     46#File: libtool_fix.sh 
     47 
     48if test "x$1" = "x" ; then prog=libtool; 
     49else prog=$1; fi 
     50 
     51sed -i1 -e 's|^export_dynamic_flag_spec=.*$|export_dynamic_flag_spec="-qnostaticlink"|' -e 's|^pic_flag=.*$|pic_flag=" -qpic"|' -e 's|^archive_cmds=.*$|archive_cmds="\\$CC -G \\$libobjs \\$deplibs \\$compiler_flags \\${wl} -o \\$lib"|' -e 's|^hardcode_libdir_flag_spec=.*$|hardcode_libdir_flag_spec="-R\\$libdir -L\\$libdir"|' $prog 
     52}}} 
     53 
     54 
     553. To successfully configure Babel, the following prerequisites were necessary: libxml2, then zlib. The former was required for Python support (so the fact that Babel includes libparsifal does not remove the dependence on libxml2 if you want Python). The latter was required by libxml2. [[BR]] 
    3956  a. zlib-1.2.3 was configured with: 
    4057  {{{ 
     
    4259}}} 
    4360  and then I had to manually change the values of the CC and LDSHARED variables since zlib does not have a real configure. The values were CC=mpixlc and LDSHARED=mpixlc (I think you only really need CC).[[BR]][[BR]] 
    44   a. libxml2-2.7.3 was configured with  
     61  a. libxml2-2.7.3 was configured and built with  
    4562  {{{ 
    4663./configure --prefix=/home/norris/cca CC=mpixlc CXX=mpixlcxx F90=mpixlf2003 F77=mpixlf77 \ 
    4764  CPP='gcc -E' --with-python=/bgsys/drivers/ppcfloor/gnu-linux/bin/python --with-zlib=/home/norris/cca \ 
    48   --disable-shared --enable-static 
     65  --enable-shared --disable-static 
     66libtool_fix.sh 
     67make 
     68make install 
    4969}}}