Hi,
In principle, yes. However, in my many weeks of trying to fix this issue, I installed all header in a directory available to all nodes just to test if that was the issue. That solution did not work, and this allowed to rule out development headers as the issue. But I am open to test any other solution you have.
In the mean time, I patched CIFactory.cpp
and I have some more in formation.
{
'version': 0,
'roots': [
{ 'name': '', 'type': 'directory',
'contents': [
{ 'name': 'libc.modulemap', 'type': 'file',
'external-contents': '/home/software/root/root-6.24.06/install/etc/cling/libc.modulemap'
}
]
},
{ 'name': '/home/software/gcc/gcc10/install/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../include/c++/10.3.0', 'type': 'directory',
'contents': [
{ 'name': 'std.modulemap', 'type': 'file',
'external-contents': '/home/software/root/root-6.24.06/install/etc/cling/std.modulemap'
}
]
}]
}
]
}
error: entry with relative path at the root level is not discoverable
{ 'name': '', 'type': 'directory',
^~
Error in modulemap.overlay!
This empty directory name seems to be the issue. Does Cling interpret this ' '
as the root directory (/
) or the src directory for root? Why would it interpret it correctly for head node and incorrectly for compute nodes? (I might be way off with my interpretation of the overlay).
For the head node this line look like:
{ 'name': '/usr/include', 'type': 'directory',
and indeed ‘/usr/include’ does not exist on the compute nodes. So it looks like I need to find a way to compile root and have it look for all headers in a common (to head and compute nodes) directory and never look in ‘/usr/include’
Jimmy