libunwind/1.6.2-cpeGNU-23.12 (libunwind-1.6.2-cpeGNU-23.12.eb)
To access module help and find out for which stacks and partitions the module is
installed, use module spider libunwind/1.6.2-cpeGNU-23.12
.
EasyConfig:
easyblock = 'ConfigureMake'
local_XZ_version = '5.4.2' # https://tukaani.org/xz/
local_libunwind_version = '1.6.2' # http://download.savannah.nongnu.org/releases/libunwind/
name = 'libunwind'
version = local_libunwind_version
homepage = 'https://www.nongnu.org/libunwind/'
whatis = [
'Description: Efficient C programming interface to determine the call-chain of a program'
]
description = """
Libunwind is define a portable and efficient C programming interface (API) to
determine the call-chain of a program. The API additionally provides the means
to manipulate the preserved (callee-saved) state of each call-frame and to
resume execution at any point in the call-chain (non-local goto). The API
supports both local (same-process) and remote (across-process) operation. As
such, the API is useful in a number of applications
- exception handling: the libunwind API makes it trivial to implement the
stack-manipulation aspects of exception handling.
- debuggers: the libunwind API makes it trivial for debuggers to generate the
call-chain (backtrace) of the threads in a running program.
- introspection: it is often useful for a running thread to determine its
call-chain. For example, this is useful to display error messages (to show how
the error came about) and for performance monitoring/analysis.
- efficient setjmp(): With libunwind, it is possible to implement an extremely
efficient version of setjmp(). Effectively, the only context that needs to be
saved consists of the stack-pointer(s).
"""
docurls = [
'Documentation: https://www.nongnu.org/libunwind/docs.html'
]
software_license_urls = [
'https://git.savannah.nongnu.org/cgit/libunwind.git/tree/COPYING',
]
toolchain = {'name': 'cpeGNU', 'version': '23.12'}
source_urls = [GNU_SAVANNAH_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976']
builddependencies = [
('buildtools', '%(toolchain_version)s', '', True),
]
dependencies = [
('XZ', local_XZ_version),
]
# 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 += 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fuse-ld=bfd -fno-common" && '
postinstallcmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cp AUTHORS ChangeLog COPYING NEWS README %(installdir)s/share/licenses/%(name)s',
]
sanity_check_paths = {
'files': ['include/libunwind.h', 'lib/libunwind.%s' % SHLIB_EXT,
f'share/licenses/{name}/COPYING'],
'dirs': []
}
moduleclass = 'lib'