gc/8.2.6-cpeAOCC-24.03 (gc-8.2.6-cpeAOCC-24.03.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider gc/8.2.6-cpeAOCC-24.03
.
EasyConfig:
easyblock = 'ConfigureMake'
local_gc_version = '8.2.6' # http://hboehm.info/gc/gc_source/
local_libatomic_version = '7.8.2' # https://github.com/ivmai/libatomic_ops/releases (with gc)
name = 'gc'
version = local_gc_version
homepage = 'http://hboehm.info/gc/'
whatis = [
"Description: gc is the Boehm-Demers-Weiser conservative garbage collector, a garbage collecting replacement for C malloc or C++ new",
"This module provides static and shared libraries and header files"
]
description = """
The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage
collecting replacement for C malloc or C++ new.
"""
docpaths = [
'share/doc/gc'
]
software_license_urls = [ # Will change in 8.3!
'https://hboehm.info/gc/license.txt',
f'https://github.com/ivmai/bdwgc/blob/v{version}/README.md#copyright--warranty',
f'https://github.com/ivmai/libatomic_ops/blob/v{local_libatomic_version}/LICENSE',
]
toolchain = {'name': 'cpeAOCC', 'version': '24.03'}
toolchainopts = {'pic': True}
source_urls = [
'https://github.com/ivmai/bdwgc/releases/download/v%(version)s/', # preferred for gc-%(version)s.tar.gz
'https://hboehm.info/gc/gc_source/', # alternate for gc-%(version)s.tar.gz
'https://github.com/ivmai/libatomic_ops/releases/download/v%s/' % local_libatomic_version,
]
sources = [
SOURCE_TAR_GZ,
'libatomic_ops-%s.tar.gz' % local_libatomic_version,
]
checksums = [
{'gc-8.2.6.tar.gz': 'b9183fe49d4c44c7327992f626f8eaa1d8b14de140f243edb1c9dcff7719a7fc'},
{'libatomic_ops-7.8.2.tar.gz': 'd305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51'},
]
builddependencies = [ # Create a reproducible build environment.
('buildtools', '%(toolchain_version)s', '', True),
]
# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-libsci cray-mpich rocm xpmem && '
prebuildopts = preconfigopts
preinstallopts = preconfigopts
preconfigopts += "ln -s %(builddir)s/libatomic_ops*/ libatomic_ops && "
configopts = '--enable-static --enable-threads=posix'
postinstallcmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cp AUTHORS README.md README.QUICK %(installdir)s/share/licenses/%(name)s',
'mkdir -p %(installdir)s/share/licenses/libatomic_ops',
f'cd ../libatomic_ops-{local_libatomic_version} && cp AUTHORS COPYING LICENSE README.md README_details.txt %(installdir)s/share/licenses/libatomic_ops',
]
sanity_check_paths = {
'files': ['lib/lib%s.%s' % (x, y) for x in [ 'gc', 'cord'] for y in [ 'a', 'la', SHLIB_EXT]] +
['include/gc.h', 'lib/pkgconfig/bdw-gc.pc',
f'share/licenses/{name}/README.md', 'share/licenses/libatomic_ops/LICENSE'],
'dirs': ['include/gc', 'share'],
}
sanity_check_commands = [
'pkg-config --libs bdw-gc'
]
moduleclass = 'lib'