Changes between Version 23 and Version 24 of babelbgp


Ignore:
Timestamp:
02/25/09 18:50:23 (14 years ago)
Author:
norris
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • babelbgp

    v23 v24  
    44I do not recommend that anyone tries this unless they want to spend a lot of time waiting for configure scripts to complete (e.g., on my laptop, babel configure takes 2.5 minutes, while on the BG/P it takes at least 20 minutes, depending on various options, and then you have to actually build).  
    55 
    6 1.  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. 
     61.  First of all, I started out with the goal of getting as many languages supported as possible, including python. This necessitated the following steps: 
     7 a. Python distutils are rather crippled when it comes to cross-compiling. I build my own python (version 2.6.1) and extended the distutils implementation with a BG/P-specific compiler module. More details on that are available [wiki:bgpdistutils here]. 
     8 a. I had to install !NumPy , 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.  
     9 
    710 
    8112. 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): 
     
    8588#File: libtool_fix.sh 
    8689 
    87 if test "x$1" = "x" ; then prog=libtool; 
     90wd=`pwd` 
     91if test "x$1" = "x" ; then prog=libtool 
    8892else prog=$1; fi 
    8993 
    90 sed -i1 -e 's|^export_dynamic_flag_spec=.*$|export_dynamic_flag_spec="-qnostaticlink"|' \ 
    91         -e 's|^pic_flag=.*$|pic_flag=" -qpic"|' \ 
    92         -e 's|^archive_cmds=.*$|archive_cmds="\\$CC -G \\$libobjs \\$deplibs \\$compiler_flags \\${wl} -o \\$lib"|' \ 
    93         -e 's|^hardcode_libdir_flag_spec=.*$|hardcode_libdir_flag_spec="-R\\$libdir -L\\$libdir"|' $prog 
     94find $wd -name $prog -exec \ 
     95    sed -i1 -e 's|^export_dynamic_flag_spec=.*$|export_dynamic_flag_spec=""|g' \ 
     96        -e 's|^whole_archive_flag_spec=.$|whole_archive_flag_spec=""|g' \ 
     97        -e 's|^pic_flag=.*$|pic_flag=" -DPIC -qpic"|g' \ 
     98        -e 's|^archive_cmds=.*$|archive_cmds="\\$CC -G \\$libobjs \\$deplibs \\$compiler_flags -qmkshrobj -e \\$soname  -o \\$lib"|g' \ 
     99        -e 's|^hardcode_libdir_flag_spec=.*$|hardcode_libdir_flag_spec="-R\\$libdir -L\\$libdir"|g' {} \; -print 
     100 
    94101}}} 
    95102