On 10/29/2013 03:51 PM, Noah Watkins wrote:
Out of the box on OSX Mavericks libc++ [1] is being used as opposed to libstdc++. One of the issues is that stuff from tr1 isn't available (e.g. std::tr1::shared_ptr), as they have moved to std in c++11. I'm looking for any feedback on this patch set, or if there is a better way forward. A set of patches on ceph.git:wip-libc++ [2] adds initial support (with a couple temporary hacks). These patches are very similar to the method used to support libc++ in mongodb. Summary of changes: std::tr1::shared/weak_ptr maps to ceph::shared/weak_ptr
I'm fine with this approach in general, but we need to be careful about changing librados.h[pp], since that may break the ABI. We really should've hidden the entire implementation of ObjectIterator to begin with, but now we're stuck with it in librados.hpp. This branch changes a std::tr1::shared_ptr there to a ceph::shard_ptr, which looks unsafe to me. Could you check whether you can run 'rados ls' compiled against an old librados, but dynamically loading librados from this branch compiled in c++98 mode? Josh
hash_map/set maps to ceph::unordered_map/set which will choose tr1::unordered_map/set over ext/hash_map/set. [1] http://libcxx.llvm.org/ [2] https://github.com/ceph/ceph/compare/wip-libc%2B%2B
-- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html