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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to