wiki:ccafebgp

Version 1 (modified by tramer, 13 years ago) (diff)

--

Installing ccaffeine on BG/P (Surveyor at Argonne)

Current build instructions (Notes by Stephen Tramer [email protected]…)

You will need both the latest versions of cca-spec-babel and ccaffeine from the repository for this. ccaffeine is not configured for spec-classic or spec-neo; if you want either of those features you're on your own (but they should compile out of the box with a little love to the config/config.sub file to add the -bgp OS type; see the config/config.sub file for cca-spec-babel).

See here for instructions on checking out the cca-tools sources. You will need to build the latest version of babel as described on poring babel to BG/P before attempting any of this.

Building cca-spec-babel

Check cca-spec-babel out from the repository, configure, and build. For reference, I used the following:

./configure CPP="gcc -E" CC=mpixlc CXX=mpixlcxx FC=mpixlf2003 F77=mpixlf77 \
  --with-babel-config=$BABEL_INSTALL/bin/powerpc64-ibm-bgp-babel-config \
  --with-libxml2=$LIBXML2_LOC --with-babel-python LDFLAGS="-G -qnostaticlink" \
  --host=powerpc-bgp-linux-gnu --target=powerpc64-ibm-bgp \
  target_alias=powerpc64-ibm-bgp --prefix=$CCA_INSTALL_DIR

Now, you'll need to edit some of the files generated by cca-spec-babel by hand. Edit $CCA_INSTALL_DIR/bin/genSCLCCA.sh to refer to the proper babel libtool (edit the libtool variable definition to point to $CCA_INSTALL_DIR/bin/powerpc64-ibm-bgp-babel-libtool)

Building ccaffeine

Building ccaffeine will not work out of the box.

  1. Edit $CCAFE_SRC/config/shlib.m4:
Index: config/shlib.m4
===================================================================
--- config/shlib.m4	(revision 190)
+++ config/shlib.m4	(working copy)
@@ -1133,7 +1133,6 @@
 		CXX_SHLIB_LD="${CXX} -shared"
 		DL_OBJS="tclLoadDl.o"
 		DL_LIBS="-ldl"
-		LDFLAGS="-rdynamic"
 		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
 		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
 	    else
@@ -1175,7 +1174,6 @@
 		CXX_SHLIB_LD="${CXX} -shared"
 		DL_OBJS=""
 		DL_LIBS="-ldl"
-		LDFLAGS="-rdynamic"
 		CC_SEARCH_FLAGS=""
 		LD_SEARCH_FLAGS=""
 	    else

This prevents the '-rdynamic' flag, which is not compatible with xlC, from being passed to the linker.

  1. Remove all instances of -Wall flags. '-Wall' is not compatible with xlC. You will need to edit $CCAFE_SRC/cxx/Makefile.Rules.in and $CCAFE_SRC/cxx/gnu/getopt/Makefile.in.
  1. Run 'aclocal && autoconf'.
  1. Configure:
./configure CPP="gcc -E" CC=mpixlc CXX=mpixlcxx FC=mpixlf2003 F77=mpixlf77 \
  --with-csb-config=$CCA_INSTALL_DIR/bin/cca-spec-babel-config \
  --with-babel-python LDFLAGS="-G -qnostaticlink" --host=powerpc-bgp-linux-gnu \
  --target=powerpc64-ibm-bgp target_alias=powerpc64-ibm-bgp --prefix=$CCA_INSTALL_DIR \
  --with-boost=/home/norris/soft/boost-1_38_0/include/boost-1_38
  1. Build, and install.