-
Notifications
You must be signed in to change notification settings - Fork 283
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add custom easyblock for Flang #1729
base: develop
Are you sure you want to change the base?
Conversation
) | ||
# Also copy over the libomp libraries | ||
copy_file( | ||
os.path.join(self.llvm_obj_dir, 'lib', 'libomp.%s' % shlib_ext), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bit dubious about whether this is enough, there are a number of libomp libraries in that directory but this is the only one that appears in the Flang Binary Release File List at https://github.com/flang-compiler/flang/releases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm also concerned that an identical library (same source code) is created by Clang, are these compatible?
Regarding We can mostly achieve this by aliasing flang with
And being careful that whenever we define a full LLVM toolchain that flang appears before clang (so the clang libomp is picked up by default). The other option is to stick to a single LLVM version for a clang/flang toolchain and use the libomp from clang for flang as well. This asssumes that since they are the same code they must be compatible (be warned though, they are built with an LLVM fork for flang in the normal case, I have no idea what that means in practice). |
@geimer Maybe you might know the implications of the libomp issue? |
@ocaisa I haven't built |
easybuild/easyblocks/f/flang.py
Outdated
options += "-DCMAKE_CXX_COMPILER='%s' " % CXX | ||
options += "-DCMAKE_Fortran_COMPILER='%s' " % FC | ||
options += "-DLLVM_CONFIG='%s' " % LLVM_CONFIG | ||
options += "-DFLANG_LIBOMP='%s' " % LIBOMP |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we added Clang as a dependency I think it would be possible to just point to that libomp
at this point (and not build Flang libomp
at all).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We would likely want Clang+Flang as a single entity, just like we just merged icc/ifort
It makes for a much improved user experience not to have to understand that both icc and ifort have to be loaded despite Lmods spider saying you only need one...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For Flang, I don't think that is actually a good idea. Flang is (unfortunately) working off forked versions of Clang/LLVM.
This is likely to very soon be out of date anyway...though I admit to being confused by the whole thing: f18
was supposed to replace flang
but it seems it will actually take over the name flang
(see here). Once that get's a release then it is very likely that incorporating flang will become a whole lot easier...it is probably best to wait it out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ocaisa license header is missing
|
||
def disable_sanitizer_tests(self): | ||
# Not relevant for flang | ||
pass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also drop?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I need to override what is in the clang easyblock here which attempts to patch files in the runtime (these do not exist for Flang).
This is expected to be out of date in a few months, and a much simpler solution possible:
|
F18 has now become |
No description provided.