Skip to content

[libunwind] [package list]

libunwind/1.6.2-cpeAOCC-24.03 (libunwind-1.6.2-cpeAOCC-24.03.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider libunwind/1.6.2-cpeAOCC-24.03.

EasyConfig:

easyblock = 'ConfigureMake'

local_XZ_version =           '5.4.4'         # 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': 'cpeAOCC', 'version': '24.03'}

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'

[libunwind] [package list]