I am getting the following runtime link error when running a process that has a dependency on libboost_regex-gcc.so

  ld.so.1: configsrv: fatal: relocation error: file /esdadev/dev/gdprosch/7.1/solaris/debug/lib/libesda.so:
    symbol _ZN5boost11basic_regexIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE9do_assignEPKcS7_j:
    referenced symbol not found

The demangled symbol is…

  nm --demangle ../lib/libesda.so | grep do_assign
     U boost::basic_regex<char, boost::regex_traits<char,
     boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*,  unsigned)

My linkage looks to be okay in my library (libesda.so):

  ldd ../lib/libesda.so | grep boost
    libboost_date_time-gcc.so =>     /esdadev/extsrc/solaris/boost/lib/libboost_date_time-gcc.so
    libboost_filesystem-gcc.so =>    /esdadev/extsrc/solaris/boost/lib/libboost_filesystem-gcc.so
    libboost_regex-gcc.so =>       /esdadev/extsrc/solaris/boost/lib/libboost_regex-gcc.so

The function is in /boost/regex/v4/basic_regex.hpp

   basic_regex& do_assign(const charT* p1,
                          const charT* p2,
                          flag_type f);

I am running on a Solaris 2.8 host where my application and boost 1_33_1 were built using gcc 3.3.1

I have seen two other posting in the archives (V824.1 and V850.3) where other users had similar problems but I saw no resolution posted.

I have verified that the symbol is present in the debug and archive versions of the library and I have even tried linking against those with the same results.

  nm --demangle $BOOST_HOME/lib/libboost_regex-gcc-d.so | grep do_assign
  000a65ac W boost::basic_regex<char, boost::regex_traits<char,
  boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned)
  000e3b70 W boost::basic_regex<wchar_t, boost::regex_traits<wchar_t,
  boost::cpp_regex_traits<wchar_t> > >::do_assign(wchar_t const*, wchar_t const*, unsigned)

Any insight would be most helpful.  Thanks in advance :-)

Greg Prosch