Remove outdated RTTI flags
Since commit 0a5b6c60e0, we build LLVM with RTTI enabled. It doesn't make sense anymore to build some of our source files without RTTI just because they are pulling in LLVM headers.
Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac1015/cxx17, mac11/cxx14, windows10/cxx14
How to customize builds
@vgvassilev the bigger question in this context is probably if we should merge core/metacling/src/TCling.cxx and core/metacling/src/TClingCallbacks.cxx or at least rethink their separation...
Build failed on mac11/cxx14. Running on macphsft23.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build See console output.
Failing tests:
@chrisburr, would it be okay to ship the next ROOT release requiring llvm to be built with rtti enabled?
@vgvassilev the bigger question in this context is probably if we should merge
core/metacling/src/TCling.cxxandcore/metacling/src/TClingCallbacks.cxxor at least rethink their separation...
I believe this story has not ended. I suspect that the package maintainers will start complaining about that switch (has not yet happened) and we will have to revert again to no-rtti environment...
Perhaps the utopic model would be to use the llvm-c interfaces when communicating with llvm (or at least crossing the rtti/no-rtti worlds). The separation between TCling and TClingCallbacks and Cling standalone in software engineering terms does not really exist. The motivation for TClingCallbacks was to keep cling clean from ROOT-specific features that might make its potential upstreaming harder. I am not sure how we can improve the current setup but if you have particular ideas I am happy to participate discussing.
@vgvassilev what's the conclusion on this? Shall we keep this, even if we build LLVM with RTTI and it will likely not work to build ROOT against a non-RTTI version?
Perhaps we should discuss that with a broader audience? The fact that we "have to" build with rtti hints towards some lack of abstraction. I still expect some push back from ROOT's clients and package maintainers...
ping, what do we do with this one?
I feel like we are losing capability here. In my point of view we have a layering problem with the no-rtti option which can be resolved by using C-like interfaces in TCling. That’d be probably too much work for not big benefits except for binary sizes. In that respect no one has really complained. Iirc the size on windows was a lot more…
I suspect that when/if we adopt libInterOp that will be solved in a better way..
Ok, if there's no clear way here, I will close this for now.
I was weakly in favor of this PR, just making sure we don't forget to revert it if somebody complains.