JeffersonLab / japan-MOLLER

Just Another Parity ANalyzer --- Development for MOLLER
3 stars 10 forks source link

Don't link with ROOT's libNew #11

Closed hansenjo closed 7 months ago

hansenjo commented 9 months ago

Fixes issue #5. Closes #3 and #4.

This PR supersedes (includes) my earlier PR #3 and PR #4 as well as the trivial fix for the case-sensitive file name clash on macOS that was already merged in the japan repo.

hansenjo commented 9 months ago

Maybe hold off on this until we do some more testing. Here's why: From the discussion at https://root-forum.cern.ch/t/aborting-with-std-align-val-t-is-not-implemented-yet-rhel-9-2/55989, I gather that

This is particularly problematic because

Hence, JAPAN is currently unusable on macOS Sonoma. It is also unusable on Alma 9 with ROOT from the repositories. As a workaround, one can use a custom-compiled version of ROOT 6.28 or earlier that uses -std=c++14, except on macOS Sonoma.

I need to do more testing to confirm this, i.e. run JAPAN on Alma 9 with several versions of ROOT.

Questions:

hansenjo commented 9 months ago

See also the discussion here https://github.com/root-project/root/issues/13511

hansenjo commented 9 months ago

I've modified this PR so that the TMapFile functionality is only disabled if the CXX standard is >= 17, which reflects the current situation with ROOT (any version).

If the standard is >= 17, then

Once ROOT is patched (who knows when), we can refine the conditionals used for this logic to exclude only affected ROOT versions.

hansenjo commented 8 months ago

Looks like the ROOT team is working on this, albeit slowly: https://github.com/root-project/root/pull/14792. I think we should wait for them to finish the fix, then put a warning in our build system if a problematic combination of ROOT/C++ standard is detected.