-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Labels
Description
Is your feature request related to a problem? Please describe.
No. Things work correctly, but resolving this issue would upgrade the build process to generate more efficient code, make alternate builds easier to achieve, and address some minor non-functional issues.
Describe the solution you'd like
Updating the CMake implementation and some documentation.
Describe alternatives you've considered
None.
Additional context
I created a branch, called build-issues, that incorporates all patches for this. Here is a summary of what has been done:
- The Readme.md file has been changed to add DOI's for the references, clarify some of the explanation, and update the information that has changed with recent releases.
- Code in the lib folder that is no longer being used is no longer compiled.
- Rename the Difference() function on the GPU to Difference3() so we can compile with CUDA 12.
- Copyright notices are added to some 3rd party files that didn't have their copyright notices. Usually the header file did but not the source file or vice versa.
- Copyright notices are added to a few GOMC source files that were missing them.
- Update the CMake build process to
a. Add a -t flag to build with clang-tidy. Should be run before submitting code.
b. Add a -a flag to build with address sanitizer. More convenient for run-time dynamic analysis of illegal memory accesses.
c. Update the error message that is printed if an invalid option is used.
d. Set optimization flags for compiling with the Intel or Gnu compilers. Can turn off the optimizations with the -n flag.
e. Add support for the new Intel compiler based on LLVM.
f. Better error handling when incompatible options, like using the Intel compiler with address sanitizer, are specified.