ROOT Version: 6.18.04
Platform: Windows 10
Compiler: MVC 2019 Build 14.23.28105, Host=x64, Platform=x86
Hi everybody,
first of all, I did quite a lot of root builds on different Desktop PCs since the announcement at the root user meeting last year.
Thanks to Bertrand I learned many details of this process. Many issues that I observed seem to be resolved in the latest version except for example the imt package which uses an older SDK and causes thus build errors.
Anyway, my problem is a different one:
I build up a framework which uses ROOT IO functionality for userdefined event classes. The framework is primarily developed for linux and macos platforms but every now and then I checked the windows version since we have more windows than linux users. Our workaround so far is therefore SWAN which is nice but extremely slow due to EOS and the use of relative large files.
RDataFrame is primarily used for the data evaluation which allows use a very compact and flexible way of defining an analysis.
It works pretty fine on linux and macos and has been tested already with many different gcc versions and clang1000.
However, for the VC++ compiler under Windows I observed since 6.14 up to now always the same runtime errors for which I provide you a minimum reproducer.
You may wonder, why I’m building ROOT on windows myself. If I don’t, I’d just get more runtime errors as you can see in the attached log files when building the libraries of my framework (prebuild.log and ownbuild.log).
For a detailed description of the reproducer example, please refer to
which uses the same example but discuss another issue on linux that was resolved some time ago.
For the present issue on Windows please download the source files, build commands (Makefile.bat) and logfiles from here:
rdf_win.zip (3.2 KB)
The error occurs when using strings which are compiled at run time for filters or defines of RDataFrame.
Example:
auto df = d.Filter("b0.getVal() < 5");
where the column b0 is related to objects of a userdefined class that is dederived from TObject (testclass).
The error which seem to occure only on Windows is as follows:
IncrementalExecutor::executeFunction: symbol '_Init_thread_abort' unresolved while linking [cling interface function]!
You are probably missing the definition of _Init_thread_abort
Maybe you need to load the corresponding shared library?
After plenty ROOT builds on Windows, tests on different hardware and comparison with prebuilds, I’m pretty sure that this must be a bug.
Please, let me know if you can reproduce this error.
Many thanks in advance,
Kai