In few different situations, STLport's attempt to use the Boost.TypeTraits library resulted in circular dependencies or other errors.
A few fixes were required to resolve this:
1) In stlport/stl/_prolog.h, hide _debug.h when cstddef is the outermost header, since some of the Boost.TypeTraits headers include this to get std::size_t.
2) In stlport/stl/type_traits.h, the inclusion of boost/type_traits/remove_const.hpp was missing.
3) In stlport/stl/boost_type_traits.h, if BOOST_NO_STDC_NAMESPACE is defined, we need to pull size_t and ptrdiff_t into namespace std. This is because std may have been redefined to another name when boost/config/suffix.hpp was included, but this redef will not be present where boost_type_traits.h is included and thus the Boost.TypeTraits files may not be able to find size_t and ptrdiff_t in std unless the fix is present.
4) In stlport/functional and stlport/memory, we add the use of the BOOST_TR1_NO_RECURSION define to detect cases where the related Boost components have caused this header to be included.