OK, I first installed gcc4.3 on my system. Since I do have root-level access, I was able to

yum install gcc43.x86_64 gcc43-c++.x86_64 gcc43-gfortran.x86_64

Next, I took my 4.1 build system and made a gcc43 package.

mkdir gcc
cd gcc
mkdir bin ups
vi ups/gcc.table
  envPrepend(PATH, ${PRODUCT_DIR}/bin) 
ln -s /usr/bin/g++43 bin/g++
ln -s /usr/bin/gcc43 bin/gcc
eups declare -c -r $PWD gcc 4.3
setup gcc

Note that I didn't do anything about the libraries. The following set of commands

becker173: gcc -print-libgcc-file-name
  /usr/lib/gcc/x86_64-redhat-linux/4.1.2/libgcc.a

becker174: alias gcc gcc43

becker175: gcc -print-libgcc-file-name
  /usr/lib/gcc/x86_64-redhat-linux6E/4.3.2/libgcc.a

suggest that the executable knows where the libs are. Good.

Also important to realize is that if I set up this package, and reinstall the build system, the new eups won't blow away my previously-declare gcc package. Until I "source $LSST_HOME/loadLSST.csh". So

# new window
source $LSST_HOME/loadLSST.csh
setup gcc 4.3

# now unsetup LSST HOME, etc
unsetenv LSST_HOME EUPS_PATH
which gcc
   # still works
   /lsst/becker/lsst_devel/DMS/gcc/bin/gcc
mkdir /lsst/lsst_root_dms43
setenv LSST_HOME /lsst/lsst_root_dms43/
cd $LSST_HOME/
curl -o newinstall.sh http://lsstdev.ncsa.uiuc.edu/dmspkgs/newinstall.sh 
bash newinstall.sh LSSTPipe

Go to get lunch. Hopefully I come back and its all ready. I then need to make sure I make a *new* gcc 4.3 package in the dms43 build system before I go ahead and rebuild any trunk packages.


How to verify you are using the right compiler?

ps -elf | grep gcc
  /usr/libexec/gcc/x86_64-redhat-linux6E/4.3.2/cc1plus ...

How to verify the libs are actually build with 4.3?

TBD

It worked! Now get trunk of things I need...

# redeclare gcc
cd /lsst/becker/lsst_devel/DMS/gcc
eups declare -c -r $PWD gcc 4.3
setup gcc

# re-get some external packages
lsstpkg install eigen
lsstpkg install gsl
lsstpkg install minuit2

# re-build some python
cd numpy
tar -xzvf numpy-1.1.1/
mv numpy-1.1.1/ src
mkdir numpy-1.1.1/
cd src/
setup python
python setup.py install --home=$LSST_MYDEVEL/DMS/numpy/numpy-1.1.1
mkdir ups
cp $NUMPY_DIR/ups/numpy.table ups/
eups declare -c -r $PWD numpy 1.1.1

cd pyfits
tar -xzvf pyfits-1.3.tar.gz
mv pyfits-1.3/ src/
mkdir pyfits-1.3/
cd src/
python setup.py install --home=$LSST_MYDEVEL/DMS/pyfits/pyfits-1.3
cd ../pyfits-1.3
mkdir ups
cp $NUMPY_DIR/ups/numpy.table ups/pyfits.table
eups declare -c -r $PWD pyfits 1.3

cd matplotlib/
tar -xzvf matplotlib-0.98.3.tar.gz
mv matplotlib-0.98.3/ src/
mkdir matplotlib-0.98.3/
cd src/
python setup.py install --home=$LSST_MYDEVEL/DMS/matplotlib/matplotlib-0.98.3
cd ../matplotlib-0.98.3
mkdir ups
cp $NUMPY_DIR/ups/numpy.table ups/matplotlib.table
eups declare -c -r $PWD matplotlib 0.98.3


# tell my trunks to use gcc 4.3
vi afw_trunk/ups/afw.table 
  setupRequired(gcc >= 4.3)
vi t354/ups/ip_diffim.table
  ''
vi sdqa_trunk/ups/sdqa.table
  ''

# and remake!
cd afw_trunk/
eups declare -c -r $PWD afw 666
setup afw
scons -c
scons opt=3

cd sdqa_trunk/
eups declare -c -r $PWD sdqa 666
setup sdqa
scons -c
scons opt=3

cd t354/
eups declare -c -r $PWD ip_diffim 354
setup ip_diffim
scons -c
scons opt=3

Something did not work here…

  File "/lsst/becker/lsst_devel/DMS/afw_trunk/python/lsst/afw/image/imageLib.py", line 2650, in __init__
    this = _imageLib.new_MaskedImageF(*args)
lsst.pex.exceptions.exceptionsLib.LsstCppExceptionException exceptions.AttributeError: "'NoneType' object has no attribute 'path'" in <bound method ostream.<lambda> of <lsst.pex.policy.policyLib.ostream; proxy of <Swig Object of type 'std::ostream *' at 0x376caeeec0> >> ignored