We need named IPC between Rosetta and native apps. In boost this seems not compatible, for example with Native app and we are unable to find the "MAP_FNAME" in find_and_construct on the Rosetta process. Works fine when each process is on same arch. " typedef boost::interprocess::managed_shared_memory shared_mem;shared_mem* seg;seg = new shared_mem(boost::interprocess::open_or_create, SHARED_FILENAME, F_MAX_TOTALBUF_SIZE );Img = seg->find_or_construct<imgtype>(MAP_FNAME)(); " Root cause seems to be MemoryAlgorithm and alignment.This has alignment of 16 for Rosetta and 8 for native.The 8 byte shift seems to be the root cause and I can see this when viewing memory. Looking deeper over the last few days we can see this from the difference in frontend size (from MemoryAlgorithm): "boost::interprocess::open_or_create This creates different sized frontend (iset_index 8 or 16)for Native vs Rosetta. frontend is defined from: boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family>, boost::interprocess::iset_index, 16> *const Then perform segment->find_or_construct<mtstruct>(MAP_FNAME)(); does not work across arch." Ideally we prefer not to write a bunch of complex custom allocators etc to get this to work with open_or_create and find_or_construct, and hoping there is some simplest solution. Questions: how can we workaround this? Can we force boost::interprocess::open_or_create to use same memory algo for both arch? Or force alignment to 16 for both arch?