generically find the arch folder and add top-level bin/lib symlinks in PDT & TAU easyblocks#2029
Conversation
…symlinks The arch folder is not $(uname -m), but determined by some custom if-chain So short of parsing the configure output we simply symlink the bin/lib folder of any folder containing those into the top-level folder. This is what Spack does too so it is verified already This fixes build on e.g. Power9
|
Tested in easybuilders/easybuild-easyconfigs#10397 with success |
| for d in ('bin', 'lib'): | ||
| src = os.path.join(arch_dir, d) | ||
| dst = os.path.join(self.installdir, d) | ||
| if os.path.exists(dst): |
There was a problem hiding this comment.
You're not checking here whether the existing path is a symlink (and if it is, what the target is).
What if a bin directory is added in some future version of Tau? That would mean trouble here, so it shouldn't be brushed over, but should raise an error instead?
There was a problem hiding this comment.
I changed it to lexists which also checks for broken symlinks. The message was changed to info instead of debug.
If it is added and is correct all is good, sanity check covers the case where it points/contains something wrong.
b270802 to
5f2e082
Compare
5f2e082 to
e722ef1
Compare
|
Resolved discussions with changes implemented as requested @boegel Please double-check the open ones. |
|
FWIW: Score-P and PDT build successfully with this. For TAU we only have an ancient EC that doesn't even work out of the box. But fixing the unrelated errors and omitting OTF (that version of TAU uses wrong names) it also builds. So I assume that no regressions are introduced |
|
Re-reviewed & tested with existing PDT easyconfigs, good to go, thanks @Flamefire! |
The arch folder is not $(uname -m), but determined by some custom if-chain
So short of parsing the configure output we simply symlink the bin/lib folder
of any folder containing those into the top-level folder.
This is what Spack does too so it is verified already
This fixes build on e.g. Power9