Skip to content

Commit 046fe23

Browse files
committed
Merge branch '20231127173721_new_pr_TfRTmmMaPJ' into 20231110135614_new_pr_bwklaNNTzT
2 parents 0288ca3 + 646f7a6 commit 046fe23

File tree

25 files changed

+649
-12
lines changed

25 files changed

+649
-12
lines changed

easybuild/tools/options.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1735,11 +1735,13 @@ def process_software_build_specs(options):
17351735
})
17361736

17371737
# provide both toolchain and toolchain_name/toolchain_version keys
1738-
if 'toolchain_name' in build_specs:
1738+
try:
17391739
build_specs['toolchain'] = {
17401740
'name': build_specs['toolchain_name'],
1741-
'version': build_specs.get('toolchain_version', None),
1741+
'version': build_specs['toolchain_version'],
17421742
}
1743+
except KeyError:
1744+
pass # Don't set toolchain key if we don't have both keys
17431745

17441746
# process --amend and --try-amend
17451747
if options.amend or options.try_amend:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild
2+
easyblock = 'Toolchain'
3+
4+
name = 'iimpi'
5+
version = '2018a'
6+
7+
homepage = 'https://software.intel.com/parallel-studio-xe'
8+
description = """Intel C/C++ and Fortran compilers, alongside Intel MPI."""
9+
10+
toolchain = SYSTEM
11+
12+
local_compver = '2016.1.150'
13+
local_suff = '-GCC-4.9.3-2.25'
14+
dependencies = [
15+
('icc', local_compver, local_suff),
16+
('ifort', local_compver, local_suff),
17+
('impi', '5.1.2.150', '', ('iccifort', '%s%s' % (local_compver, local_suff))),
18+
]
19+
20+
moduleclass = 'toolchain'

test/framework/easyconfigs/test_ecs/i/intel/intel-2018a.eb

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@ description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and
88

99
toolchain = SYSTEM
1010

11+
local_compver = '2016.1.150'
12+
local_gccver = '4.9.3'
13+
local_binutilsver = '2.25'
14+
local_gccsuff = '-GCC-%s-%s' % (local_gccver, local_binutilsver)
1115
# fake intel toolchain easyconfig, no dependencies (good enough for testing)
1216
local_fake_dependencies = [
13-
('GCCcore', '6.4.0'),
14-
('binutils', '2.28', '-GCCcore-6.4.0'),
15-
('icc', '2018.1.163', '-GCCcore-6.4.0'),
16-
('ifort', '2018.1.163', '-GCCcore-6.4.0'),
17-
('impi', '2018.1.163', '', ('iccifort', '2018.1.163-GCCcore-6.4.0')),
18-
('imkl', '2018.1.163', '', ('iimpi', version)),
17+
('GCCcore', local_gccver),
18+
('binutils', local_binutilsver, '-GCCcore-%s' % local_gccver),
19+
('icc', local_compver, local_gccsuff),
20+
('ifort', local_compver, local_gccsuff),
21+
('impi', '5.1.2.150', '', ('iccifort', '%s%s' % (local_compver, local_gccsuff))),
1922
]
2023

2124
moduleclass = 'toolchain'

test/framework/filetools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2401,7 +2401,7 @@ def test_index_functions(self):
24012401
# test with specified path with and without trailing '/'s
24022402
for path in [test_ecs, test_ecs + '/', test_ecs + '//']:
24032403
index = ft.create_index(path)
2404-
self.assertEqual(len(index), 91)
2404+
self.assertEqual(len(index), 92)
24052405

24062406
expected = [
24072407
os.path.join('b', 'bzip2', 'bzip2-1.0.6-GCC-4.9.2.eb'),

test/framework/modules.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454

5555

5656
# number of modules included for testing purposes
57-
TEST_MODULES_COUNT = 92
57+
TEST_MODULES_COUNT = 110
5858

5959

6060
class ModulesTest(EnhancedTestCase):
@@ -197,12 +197,12 @@ def test_avail(self):
197197

198198
# test modules include 3 GCC modules and one GCCcore module
199199
ms = self.modtool.available('GCC')
200-
expected = ['GCC/4.6.3', 'GCC/4.6.4', 'GCC/6.4.0-2.28', 'GCC/7.3.0-2.30']
200+
expected = ['GCC/12.3.0', 'GCC/4.6.3', 'GCC/4.6.4', 'GCC/6.4.0-2.28', 'GCC/7.3.0-2.30']
201201
# Tcl-only modules tool does an exact match on module name, Lmod & Tcl/C do prefix matching
202202
# EnvironmentModules is a subclass of EnvironmentModulesTcl, but Modules 4+ behaves similarly to Tcl/C impl.,
203203
# so also append GCCcore/6.2.0 if we are an instance of EnvironmentModules
204204
if not isinstance(self.modtool, EnvironmentModulesTcl) or isinstance(self.modtool, EnvironmentModules):
205-
expected.append('GCCcore/6.2.0')
205+
expected.extend(['GCCcore/12.3.0', 'GCCcore/6.2.0'])
206206
self.assertEqual(ms, expected)
207207

208208
# test modules include one GCC/4.6.3 module
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
8+
in one or more dimensions, of arbitrary input size, and of both real and complex data.
9+
10+
11+
More information
12+
================
13+
- Homepage: https://www.fftw.org
14+
}
15+
}
16+
17+
module-whatis {Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
18+
in one or more dimensions, of arbitrary input size, and of both real and complex data.}
19+
module-whatis {Homepage: https://www.fftw.org}
20+
module-whatis {URL: https://www.fftw.org}
21+
22+
set root /prefix/software/FFTW.MPI/3.3.10-gompi-2023a
23+
24+
conflict FFTW.MPI
25+
26+
if { ![ is-loaded gompi/2023a ] } {
27+
module load gompi/2023a
28+
}
29+
30+
if { ![ is-loaded FFTW/3.3.10-GCC-12.3.0 ] } {
31+
module load FFTW/3.3.10-GCC-12.3.0
32+
}
33+
34+
prepend-path CMAKE_PREFIX_PATH $root
35+
prepend-path CPATH $root/include
36+
prepend-path LD_LIBRARY_PATH $root/lib
37+
prepend-path LIBRARY_PATH $root/lib
38+
setenv EBROOTFFTWMPI "$root"
39+
setenv EBVERSIONFFTWMPI "3.3.10"
40+
setenv EBDEVELFFTWMPI "$root/easybuild/FFTW.MPI-3.3.10-gompi-2023a-easybuild-devel"
41+
42+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
8+
in one or more dimensions, of arbitrary input size, and of both real and complex data.
9+
10+
11+
More information
12+
================
13+
- Homepage: https://www.fftw.org
14+
}
15+
}
16+
17+
module-whatis {Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
18+
in one or more dimensions, of arbitrary input size, and of both real and complex data.}
19+
module-whatis {Homepage: https://www.fftw.org}
20+
module-whatis {URL: https://www.fftw.org}
21+
22+
set root /prefix/software/FFTW/3.3.10-GCC-12.3.0
23+
24+
conflict FFTW
25+
26+
if { ![ is-loaded GCC/12.3.0 ] } {
27+
module load GCC/12.3.0
28+
}
29+
30+
prepend-path CMAKE_PREFIX_PATH $root
31+
prepend-path CPATH $root/include
32+
prepend-path LD_LIBRARY_PATH $root/lib
33+
prepend-path LIBRARY_PATH $root/lib
34+
prepend-path MANPATH $root/share/man
35+
prepend-path PATH $root/bin
36+
prepend-path PKG_CONFIG_PATH $root/lib/pkgconfig
37+
prepend-path XDG_DATA_DIRS $root/share
38+
39+
setenv EBROOTFFTW "$root"
40+
setenv EBVERSIONFFTW "3.3.10"
41+
setenv EBDEVELFFTW "$root/easybuild/FFTW-3.3.10-GCC-12.3.0-easybuild-devel"
42+
43+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
8+
used by a program without recompiling or relinking it.
9+
10+
11+
More information
12+
================
13+
- Homepage: https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release
14+
}
15+
}
16+
17+
module-whatis {Description: FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
18+
used by a program without recompiling or relinking it.}
19+
module-whatis {Homepage: https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release}
20+
module-whatis {URL: https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release}
21+
22+
set root /prefix/software/FlexiBLAS/3.3.1-GCC-12.3.0
23+
24+
conflict FlexiBLAS
25+
26+
if { ![ is-loaded GCC/12.3.0 ] } {
27+
module load GCC/12.3.0
28+
}
29+
30+
if { ![ is-loaded OpenBLAS/0.3.23-GCC-12.3.0 ] } {
31+
module load OpenBLAS/0.3.23-GCC-12.3.0
32+
}
33+
34+
prepend-path CMAKE_PREFIX_PATH $root
35+
prepend-path CPATH $root/include
36+
prepend-path LD_LIBRARY_PATH $root/lib
37+
prepend-path LIBRARY_PATH $root/lib
38+
prepend-path MANPATH $root/share/man
39+
prepend-path PATH $root/bin
40+
prepend-path PKG_CONFIG_PATH $root/lib/pkgconfig
41+
prepend-path XDG_DATA_DIRS $root/share
42+
43+
setenv EBROOTFLEXIBLAS "$root"
44+
setenv EBVERSIONFLEXIBLAS "3.3.1"
45+
setenv EBDEVELFLEXIBLAS "$root/easybuild/FlexiBLAS-3.3.1-GCC-12.3.0-easybuild-devel"
46+
47+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228

test/framework/modules/GCC/12.3.0

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
8+
as well as libraries for these languages (libstdc++, libgcj,...).
9+
10+
11+
More information
12+
================
13+
- Homepage: https://gcc.gnu.org/
14+
}
15+
}
16+
17+
module-whatis {Description: The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
18+
as well as libraries for these languages (libstdc++, libgcj,...).}
19+
module-whatis {Homepage: https://gcc.gnu.org/}
20+
module-whatis {URL: https://gcc.gnu.org/}
21+
22+
set root /prefix/software/GCC/12.3.0
23+
24+
conflict GCC
25+
26+
if { ![ is-loaded GCCcore/12.3.0 ] } {
27+
module load GCCcore/12.3.0
28+
}
29+
30+
if { ![ is-loaded binutils/2.40-GCCcore-12.3.0 ] } {
31+
module load binutils/2.40-GCCcore-12.3.0
32+
}
33+
34+
setenv EBROOTGCC "$root"
35+
setenv EBVERSIONGCC "12.3.0"
36+
setenv EBDEVELGCC "$root/easybuild/GCC-12.3.0-easybuild-devel"
37+
38+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
8+
as well as libraries for these languages (libstdc++, libgcj,...).
9+
10+
11+
More information
12+
================
13+
- Homepage: https://gcc.gnu.org/
14+
}
15+
}
16+
17+
module-whatis {Description: The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
18+
as well as libraries for these languages (libstdc++, libgcj,...).}
19+
module-whatis {Homepage: https://gcc.gnu.org/}
20+
module-whatis {URL: https://gcc.gnu.org/}
21+
22+
set root /prefix/software/GCCcore/12.3.0
23+
24+
conflict GCCcore
25+
26+
prepend-path CMAKE_LIBRARY_PATH $root/lib64
27+
prepend-path CMAKE_PREFIX_PATH $root
28+
prepend-path LD_LIBRARY_PATH $root/lib64
29+
prepend-path MANPATH $root/share/man
30+
prepend-path PATH $root/bin
31+
prepend-path XDG_DATA_DIRS $root/share
32+
33+
setenv EBROOTGCCCORE "$root"
34+
setenv EBVERSIONGCCCORE "12.3.0"
35+
setenv EBDEVELGCCCORE "$root/easybuild/GCCcore-12.3.0-easybuild-devel"
36+
37+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228

0 commit comments

Comments
 (0)