mkdir gcc
cd gcc
mkdir bin ups
vi ups/gcc.table
  envPrepend(PATH, ${PRODUCT_DIR}/bin) 
  envPrepend(LD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
  envPrepend(DYLD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
ln -s /usr/bin/g++43 bin/g++
ln -s /usr/bin/gcc43 bin/gcc

# this one i am not so sure about
ln -s /usr/lib/gcc/x86_64-redhat-linux6E/4.3.2/ lib

eups declare -c -r $PWD gcc 4.3.2
setup gcc

$AFW_DIR/python/lsst/afw/detection/footprints.i :
  %template(FootprintContainerT) std::vector<lsst::afw::detection::Footprint::Ptr>; 

$IP_DIFFIM_DIR/include/lsst/ip/diffim/SpatialModelCell.h :
  typedef std::vector<lsst::afw::detection::Footprint::Ptr> FpPtrList;
  SpatialModelCell(FpPtrList fpPtrList);
  --or even--
  SpatialModelCell(std::vector<lsst::afw::detection::Footprint::Ptr> fpPtrList); 

$IP_DIFFIM_DIR/python/lsst/ip/diffim/diffimLib.i :
  %template(SpatialModelCellF) lsst::ip::diffim::SpatialModelCell<float>; 

test code :
  foo = detection.FootprintContainerT()
  ipDiffim.SpatialModelCellF(foo)
  *** NotImplementedError: Possible C/C++ prototypes include:
      lsst::ip::diffim::SpatialModelCell< float >(std::vector< lsst::afw::detection::Footprint::Ptr,std::allocator< lsst::afw::detection::Footprint::Ptr > >)

The basic problem is that Swig does not know my 2 types, the one being sent and the one that SpatialModelCell? is expecting, are the same. The solution:

$IP_DIFFIM_DIR/python/lsst/ip/diffim/diffimLib.i : 
   %import lsst/afw/detection/detectionLib.i