ACLiC fails to generate the dependency file in a VM

While trying to use ROOT 6 in a “Ubuntu 20.04” VirtualBox (6.1.32) machine in a “Shared Folder” working directory ("/c/Temp" below), I get:

[...]:/c/Temp$ root
root [0] .L Test.h++
Info in <TUnixSystem::ACLiC>: creating shared library /c/Temp/./Test_h.so
Warning in <ACLiC>: Failed to generate the dependency file for /c/Temp/./Test_h.so
root [1]

If the working directory is inside of the VM “.vdi” disk, then it works fine.
The host (which serves “/c/Temp”) is a Windows 10 Pro machine.

BTW. ROOT 5 also has this problem.

Dear wile,

Has the directory permissions for execution of code…?

Best regards
Joa

I don’t think there are any permission problems.

Yup thanks, also for opening the issue on Github. This has been fixed in the meantime!

If you mean the "Make sure the temporary file is closed before renaming it. Fixes #9730 #9732 " commits, then I’m afraid they address a different issue. Or do you mean other commits?

I tried to take the latest “root/core/dictgen/src/rootcling_impl.cxx” and rebuild my ROOT 6.24 but it died at “G__ROOTVecOps.cxx.o”.

So, I patched the original “rootcling_impl.cxx” in the “clean” and “commit” routines, adding the required “ifile.close();”, but … the problem reported here is still present.

Can this be fixed BEFORE the new ROOT 6.26 is released?

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

Can this be fixed now (e.g., at least in the “v6-26-00-patches” branch)?

Sorry @Wile_E_Coyote I missed this… And indeed I confused the two issues you reported.

What’s the output of touch /c/Temp/./Test_h.so?

What’s the output inside ROOT for TFile::Open("/c/Temp/./Test_h.root", "RECREATE")?

Of course, I get no errors from “touch” nor from “TFile::Open”.

The “Test_h.so” and “Test_h_ACLiC_dict_rdict.pcm” seem to be created fine, but the “Test_h.d” contains just a single “new line” character.

The “Test.h” file comes from this post:

@Axel This bug is still present on ROOT 6.26/02.