Unable to compile 6.32 on x86_64-mac144-clang12-opt with root7 option


I’m trying to build ROOT 6.32 from source on my intel mac (x86_64-mac144-clang12-opt), but with the default root7 build option on, I encounter this error:

/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3957:39: error: call to implicitly-deleted copy constructor of
        __cntrl_ = new _CntrlBlk(__p, __d, _AllocT());
/path/to/src/ROOT/tree/ntuple/v7/src/RField.cxx:841:24: note: in instantiation of function template specialization
      'std::__1::shared_ptr<void>::shared_ptr<void, ROOT::Experimental::RFieldBase::RSharedPtrDeleter>' requested here
   return RValue(this, std::shared_ptr<void>(obj, RSharedPtrDeleter(GetDeleter())));

I have disabled root7 build option to get past this, but wanted to see if this is a known issue or not?

AFAIK, we build on MacOS 13, 14, and beta on ARM64, but I don’t know on X86_64. Maybe @couet or @Danilo can give more details?


We have builds for M1/M2 only for 13 and above, for 12 we build on M1 and x86_64 but the platform was dropped for 6.32 as in October will not be supported by Apple any more (or at least this is what has been done for years).

Nevertheless, we can fix this I think and pile the fix for the next patch release of 6.32 and allow you to use that change for your local build. @jblomer is now in the loop


1 Like

The underlying problem is that the compiler is not fully C++17 compliant. If there is a newer compiler toolchain available from Apple, this may the simplest way to address the issue. In critical cases, we can of course work on working around compiler problems, but it would be a rather costly fix.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.