This change fixes data formatters for libstdc++ 6.0.21:
- Adds std::string data formatter support in C++ (rather than Python) for 6.0.21+.
- Uses std::list count field support when present.
- Fixes std container and std::string failing tests on Ubuntu 15.10 x86_64.
- Fixes what looks like a broken compilation on TOT which assumes libc++ is used but doesn't guarantee it, then uses libc++ details, which breaks when compiling with libstdc++. (The test would later figure it out, but only after the failing build step). Modified the using of libc++ to define a LLDB_USING_LIBCPP flag when we're really compiling with it, and conditionally compile the libc++-specific code so it doesn't break when built with libstdc++.
Anybody on the Linux/BSD side, feel free to review.
This has been tested on Ubuntu 14.04 x86_64 (with libstdc++ 6.0.20) and Ubuntu 15.10 x86_64 (with libstdc++ 6.0.21). Both built using clang-3.6 and using clang-3.6 inferiors.
Thanks for fixing the build.
When I get libc++ detection and skipping logic centralized, I'd like to remove this magic and make self.build() fail with a hard error in the case when the Makefile requests libc++ use, but the library is not present. The skipping logic should fire before self.build(), but it we still end up attempting to build, then that's something we should know about.
How does that sound?