Skip to content
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

split SystemCompilerGCC out of SystemCompiler and adopt module_load_environment #3559

Open
wants to merge 2 commits into
base: 5.0.x
Choose a base branch
from

Conversation

lexming
Copy link
Contributor

@lexming lexming commented Jan 17, 2025

This PR fixes three issues with SystemCompiler:

  1. fixes using SystemCompiler easyblock for wrapper around system GCC fails if an Intel license is not defined #2815

    It is not possible to have a single class that handles GCC and Intel compilers, because inheritance in python is linear, so as soon as multiple classes are added to SystemCompiler all of them come up in the chain of calls generated by super().
    Solution is to make SystemCompiler agnostic of any compiler family and create child classes per compiler family. This PR adds SystemCompilerGCC for the GCC family. I'm not adding any for icc/ifort as those easyconfigs have been already archived. In the future we could add one for intel-compilers if there is interest.
    This approach is quite simple as the main logic of handling the multiple families remains inside SystemCompiler, avoiding any duplication of code. Child classes only need to set self.compiler_class appropriately.

    This PR is an alternative solution to fix GCC-system without Intel license #3402. The present solution avoids changes in other easyblocks like EB_GCC and is more future-proof as sub-classes handling different compiler families are completely isolated.

  2. fixes RPATH wrappers break SystemCompiler easyblock #3558

    RPATH is forced disable in SystemCompilers as it has no role for this type of installation.

  3. updates SystemCompiler easyblock for replace make_module_req_guess with module_load_environment in all EasyBlocks #3527

@lexming lexming added this to the 5.0 milestone Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

1 participant