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

adopt module_load_environment: GCC #3556

Merged
merged 2 commits into from
Feb 10, 2025
Merged

Conversation

lexming
Copy link
Contributor

@lexming lexming commented Jan 14, 2025

Update of GCC easyblock for #3527

Note: PATH and LD_LIBRARY_PATH are default and could be removed

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel
Copy link
Member

boegel commented Feb 5, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath /tmp/$USER/pr3556 GCCcore-10.2.0.eb GCCcore-11.3.0.eb GCCcore-12.3.0.eb GCCcore-13.3.0.eb GCCcore-14.2.0.eb"
CORE_CNT=16
EB_BRANCH=5.0.x

@@ -203,6 +203,13 @@ def __init__(self, *args, **kwargs):
self.log.warning('Setting withnvptx to False, since we are building on a RISC-V system')
self.cfg['withnvptx'] = False

# define list of subdirectories in search paths of module load environment
self.module_load_environment.PATH = ['bin']
self.module_load_environment.LD_LIBRARY_PATH = ['lib', 'lib64']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two lines don't need to be here since framework takes care of this exactly like this

@boegelbot
Copy link

@boegel: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ "5.0.x" != 'develop' ]]; then EB_BRANCH="5.0.x" ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/"5.0.x" source init_env_easybuild_develop.sh; fi; EB_PR=3556 EB_ARGS="--installpath /tmp/$USER/pr3556 GCCcore-10.2.0.eb GCCcore-11.3.0.eb GCCcore-12.3.0.eb GCCcore-13.3.0.eb GCCcore-14.2.0.eb" EB_REPO=easybuild-easyblocks EB_BRANCH="5.0.x" /opt/software/slurm/bin/sbatch --job-name test_PR_3556 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 5667

Test results coming soon (I hope)...

- notification for comment with ID 2636778129 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

self.module_load_environment.LD_LIBRARY_PATH = ['lib', 'lib64']
# GCC can find its own headers and libraries but the .so's need to be in LD_LIBRARY_PATH
self.module_load_environment.CPATH = []
self.module_load_environment.LIBRARY_PATH = ['lib', 'lib64'] if get_cpu_family() == RISCV else []
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The RISC-V exception was added here in #3256, we should check the impact of not including lib/lib64 on a RISC-V system.

@bedroge Was this really necessary, or is it really only required during the build of GCC itself?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not 100% sure, but I think the final installation wouldn't work without this either.

self.module_load_environment.PATH = ['bin']
self.module_load_environment.LD_LIBRARY_PATH = ['lib', 'lib64']
# GCC can find its own headers and libraries but the .so's need to be in LD_LIBRARY_PATH
self.module_load_environment.CPATH = []
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than setting CPATH explicitly, this should be changed to using the utility functions being added in:

@boegel
Copy link
Member

boegel commented Feb 5, 2025

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS GCCcore-10.3.0.eb
  • SUCCESS GCCcore-11.2.0.eb
  • SUCCESS GCC-12.2.0.eb
  • SUCCESS GCCcore-13.2.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
node3561.doduo.os - Linux RHEL 8.8, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/boegel/41c067f3b160ea2644ec3e906b94f5e6 for a full test report.

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS GCCcore-10.2.0.eb
  • SUCCESS GCCcore-11.3.0.eb
  • SUCCESS GCCcore-12.3.0.eb
  • SUCCESS GCCcore-13.3.0.eb
  • SUCCESS GCCcore-14.2.0.eb

Build succeeded for 5 out of 5 (5 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/a25834993146019f385a97b7e0169a45 for a full test report.

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel
Copy link
Member

boegel commented Feb 10, 2025

I'll leave this as-is, since it gets rid of using the deprecated make_module_req_guess.

We'll need another pass over this after easybuilders/easybuild-framework#4655 got merged since we're hard setting $CPATH...

@boegel boegel merged commit 14a5ac9 into easybuilders:5.0.x Feb 10, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EasyBuild-5.0 EasyBuild 5.0
Projects
Status: Breaking changes
Development

Successfully merging this pull request may close these issues.

4 participants