Well it turns out despite not receiving any link errors I wasn't linking to libboost_thread.a as I thought I was.  On Windows this seems to be handled by the auto link facility and I figured the same on linux.  Which explains why when I explicitly link to the shared libboost_thread.so everything worked.  However explicitly linking to the static libboost_thread.a resulted in a link error of relocation R_X86_64_32 ... recompile with -fPIC.

Doing a custom compile with the fPIC option set fixed that.

./bjam -a --prefix=/usr/local/boost_1_47_0 cxxflags=-fPIC --with-thread

This only seems to have updated the stage directory though and not boost_root/lib.  Not sure why that is as I didn't pass the --stage option.