summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/llvm/package.py
AgeCommit message (Collapse)AuthorFilesLines
2024-01-02Update copyright year to 2024 (#41919)Todd Gamblin1-1/+1
It was time to run `spack license update-copyright-year` again.
2023-12-27Initial License CheckinAiden Grossman1-0/+2
This patch adds license information for about 5,300 packages from automated sources. The license information was obtained from Alpine Linux and PyPI and processed using tooling available in https://github.com/boomanaiden154/spack-license-utils. The license field was added in after all other directives in an automated fashion. Note that while this license information is probably fairly accurate, it is not guaranteed to be accurate. In addition some of the license strings from Alpine Linux might not be valid SPDX license strings. Invalid SPDX identifiers can be picked up and fixed once we have validation/parsing infrastructure in place for the solver, and issues can be fixed as they come up.
2023-12-22llvm: fix llvm@14 build with apple-clang-15 (#40191)Laurent Aphecetche1-0/+22
* llvm: fix llvm@14 build with apple-clang-15 * fix formatting --------- Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2023-12-11Bump up the version for ROCm-5.7.0 and ROCm-5.7.1 releases. (#40724)Sreenivasa Murthy Kolam1-0/+1
* initial commit for rocm-5.7.0 and 5.7.1 releases * bump up ther version for 5.7.0 and 5.7.1 releases * update recipes to support 5.7.0 and 5.7.1 releases * bump up the version for ROCm 5.7.0 and ROCm-5.7.1 releases * bump up the version for composable-kernel amd miopen-hip * fix style errors * fix style errors in hip etc * renaming composable-kernel recipe * changes for composable_kernel * Revert "renaming composable-kernel recipe" This reverts commit 0cf6c6debfc7b12014f514af26144132ae187e71. * Revert "changes for composable_kernel" This reverts commit 05272a10a79cc14dc9c1afbda8fa4de87ea672ad. * bump up the version for hiprand * using the checksum for hiprand-5.7.1 * bump up the version for 5.7.0 and 5.7.1 releases * fix style errors * fix merge conflicts with the develop. * temp workaround for the error seen with rocm-5.7.0 when trying to generate the dependency file for runtime/legion/legion_redop.cu * fix build issue(work around) with legion * add patch for migraphx package to turn off ck * update to hip recipe * fix hip-path detection inside llvm clang driver * update llvm-amdgpu and rocm-validation-suite recipes * fix style errors * bump up the version for amdsmi for rocm-5.7.0 release * add support for gfx941,gfx942 for rocm-5.7.0 release onwards * revert changes to rocm.py file * added gfx941 and gfx942 to rocm.py and add the gfx942 to kokkos and new checksum the new version seem to support gfx942 * bump up the version for rccl for 5.7.1 * update the patch for rocm-openmp-extras for 5.7.0 * update mivisionx recipe for 5.7.0 release * add new dependencies for rocfft tests * port the fix for avx build, the start address of values_ buffer in KernelParameters is not correct as it is computed based on 16-byte alignment * set HIP_PATH=ROCM_PATH for 5.7.0 onwards * address review comments * revert adding xnack- and xnack+ to gfx940,gfx941,gfx942 as the prechecks were failing
2023-12-06llvm: reformulate a when condition to avoid tautology (#41461)Massimiliano Culpo1-8/+8
The condition on swig can be interpreted as "true if true, false if false" and gives clingo the option to add swig or not. If not other optimization criteria break the tie, then the concretization is non-deterministic.
2023-11-20llvm: Remove python bindings when >= v17 (#41160)Alec Scott1-1/+4
Co-authored-by: Tom Scogland <scogland1@llnl.gov>
2023-11-17llvm: patch missing cstdint include (#41108)Harmen Stoppels1-0/+6
* llvm: patch missing cstdint include
2023-11-02llvm: add 17.0.2-4 (#40820)Paul R. C. Kent1-0/+3
2023-10-19Improve setup build / run / test environment (#35737)Harmen Stoppels1-8/+0
This adds a `SetupContext` class which is responsible for setting package.py module globals, and computing the changes to environment variables for the build, test or run context. The class uses `effective_deptypes` which takes a list of specs (e.g. single item of a spec to build, or a list of environment roots) and a context (build, run, test), and outputs a flat list of specs that affect the environment together with a flag in what way they do so. This list is topologically ordered from root to leaf, so that one can be assured that dependents override variables set by dependencies, not the other way around. This is used to replace the logic in `modifications_from_dependencies`, which has several issues: missing calls to `setup_run_environment`, and the order in which operations are applied. Further, it should improve performance a bit in certain cases, since `effective_deptypes` run in O(v + e) time, whereas `spack env activate` currently can take up to O(v^2 + e) time due to loops over roots. Each edge in the DAG is visited once by calling `effective_deptypes` with `env.concrete_roots()`. By marking and propagating flags through the DAG, this commit also fixes a bug where Spack wouldn't call `setup_run_environment` for runtime dependencies of link dependencies. And this PR ensures that Spack correctly sets up the runtime environment of direct build dependencies. Regarding test dependencies: in a build context they are are build-time test deps, whereas in a test context they are install-time test deps. Since there are no means to distinguish the build/install type test deps, they're both. Further changes: - all `package.py` module globals are guaranteed to be set before any of the `setup_(dependent)_(run|build)_env` functions is called - traversal order during setup: first the group of externals, then the group of non-externals, with specs in each group traversed topological (dependencies are setup before dependents) - modules: only ever call `setup_dependent_run_environment` of *direct* link/run type deps - the marker in `set_module_variables_for_package` is dropped, since we should call the method once per spec. This allows us to set only a cheap subset of globals on the module: for example it's not necessary to compute the expensive `cmake_args` and w/e if the spec under consideration is not the root node to be built. - `spack load`'s `--only` is deprecated (it has no effect now), and `spack load x` now means: do everything that's required for `x` to work at runtime, which requires runtime deps to be setup -- just like `spack env activate`. - `spack load` no longer loads build deps (of build deps) ... - `spack env activate` on partially installed or broken environments: this is all or nothing now. If some spec errors during setup of its runtime env, you'll only get the unconditional variables + a warning that says the runtime changes for specs couldn't be applied. - Remove traversal in upward direction from `setup_dependent_*` in packages. Upward traversal may iterate to specs that aren't children of the roots (e.g. zlib / python have hundreds of dependents, only a small fraction is reachable from the roots. Packages should only modify the direct dependent they receive as an argument)
2023-10-18llvm: fix ncurses+termlib linking in lldb (#40594)Harmen Stoppels1-0/+10
2023-10-02Rocm 5.6.0 & 5.6.1 release updates (#39673)renjithravindrankannath1-0/+2
* 5.6.0 updates * Rocm 5.6.0 updates * Style and audit corrections for 5.6 * Patching smi path for tests. * Style correction * 5.6.1 updates * Updated hip tests for ci build failure Updated hiprand with the release tag Taken care the review comment rocsolver * Adding rocm-smi path for 5.6 * Adding the patch file * Setting library directory uniform * gl depends on mesa but it should not be llvm variant * Fix for the issue 39520 by setting CMAKE_INSTALL_LIBDIR=lib * i1 muls can sometimes happen after SCEV. They resulted in ISel failures because we were missing the patterns for them. * 5.6.0 & 5.6.1 updates for migraphx, miopen-hip, mivisionx * Revert "5.6.0 & 5.6.1 updates for migraphx, miopen-hip, mivisionx" This reverts commit f54c9c6c67a4e5a54859f59d6550eb8e542d6c26. * Revert operator mixup fix * Splitting compiler-rt-linkage-for-host and operator mixup patch * Adding missing patch for reverting operator mixup * 5.6 update for composable-kernel,migraphx,miopen-hip and mivisionx * Updating rvs, rcd and rccl for 5.6.1. adding comment for llvm patch
2023-09-22llvm: add version 17.0.1 (#40108)Satish Balay1-0/+1
2023-09-21Fix false detection of llvm-amdgpu as llvm and llvm-doe (#40113)Wileam Y. Phan1-0/+2
2023-08-30llvm: fix for Flang variant due to exception handling (#36171)Pat McCormick1-1/+10
* The flang project does not support exceptions enabled in the core llvm library (and developer guidelines explicitly state they should not be used). For this reason, when the flang variant is selected, LLVM_ENABLE_EH needs to be disabled. In the current main branch of llvm (and thus future releases), enabling flang and setting LLVM_ENABLE_EH will cause the overall build to fail. * Update var/spack/repos/builtin/packages/llvm/package.py Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com> * fix syntax --------- Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com> Co-authored-by: Satish Balay <balay@mcs.anl.gov>
2023-08-27llvm: ensure runtimes set rpaths (#39641)Nichols A. Romero1-1/+8
Ensure that CMAKE_INSTALL_RPATH_USE_LINK_PATH is propagated to sub-make when building runtimes.
2023-08-25llvm: fix `+lldb` optional deps and add `lua` variant (#39579)Nichols A. Romero1-8/+28
* llvm: fix +lldb optional deps, add lua variant * use good old conflicts --------- Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
2023-08-23llvm: fix `elf` dep conditions and cmake bug (#39566)Harmen Stoppels1-10/+8
2023-08-09zlib-api: new virtual with zlib/zlib-ng as providers (#37372)Harmen Stoppels1-1/+1
Introduces a new virtual zlib-api, which replaces zlib in most packages. This allows users to switch to zlib-ng by default for better performance.
2023-07-26llvm: remove build type comment (#39087)Aiden Grossman1-4/+0
The message is now outdated after https://github.com/spack/spack/pull/36679 which could lead to some confusion.
2023-07-11ispc: on ARM, build with ARM targets enabled, and updates (#38080)Martin Aumüller1-0/+4
* llvm: fix build with libcxx=none * ispc: checksum 1.20.0 * ispc: ensure that it does not crash immediately this would happen if linked to the wrong libc++ * ispc: fix build on macos find ncurses instead of curses and link against tinfo in order to avoid unresolved references to _del_curterm, _set_curterm, _setupterm, and _tigetnum * ispc: enable arm targets, if building on arm * ispc: remove double cmake argument I forgot to remove the constant -DARM_ENABLED=FALSE when adding -DARM_ENABLED with a value depending on target architecture * ispc: fix linux build since 1.20, linux build uses TBB as default tasking system and thus needs to depend on it * ispc: try to fix link error on linux link against both curses (as before) and tinfo (added because of macos) * ispc: update for recent llvm changes libcxx=none instead of ~libcxx
2023-06-26llvm: fix build against libstdc++ 13 (#38329)Martin Aumüller1-0/+7
llvm @13-15 is required for ispc, but fails to build with GCC 13. 14.0.6 and 15.0.7 built successfully with upstream patch, 13.0.1 still fails. Thus upstream patch is applied to 14 and 15 only.
2023-06-22Add 1606 (#38511)Paul R. C. Kent1-0/+1
2023-06-07llvm: add new versions and set default for libomptarget according to os (#38092)Sajid Ali1-0/+5
* llvm: add new versions and set default for libomptarget according to os modified: var/spack/repos/builtin/packages/llvm/package.py * Incorporate reviewer suggestions Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com> --------- Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com>
2023-06-03llvm: optionally build compiler-rt, libcxx and libunwind as runtimes (#32476)Sergey Kosukhin1-105/+251
* llvm: replace +omp_as_runtime with omp=runtime * llvm: fetch 'libomp-libflags-as-list.patch' from upstream repo * llvm: replace 'llvm14-hwloc-ompd.patch' with the official fix from upstream repo * llvm: fix-up for the black reformatting * llvm: fetch 'constexpr_longdouble.patch' from upstream repo * llvm: optionally build libcxx as a runtime * llvm: fetch 'llvm5-sanitizer-ustat.patch' from upstream repo * llvm: update 'sanitizer-ipc_perm_mode.patch' * llvm: refactor compiler conflicts when libcxx=project * llvm: fetch 'llvm_python_path.patch' from upstream repo * llvm: update comments and condition for 'xray_buffer_queue-cstddef.patch' * llvm: optionally build compiler-rt as a runtime * llvm: fetch 'lldb_external_ncurses-10.patch' from upstream repo * llvm: fetch 'llvm_py37.patch' from upstream repo * llvm: rename variant 'internal_unwind' to 'libunwind' * llvm: optionally build libunwind as a runtime * llvm: extend the list of maintainers * llvm: allow for explicit '~clang~flang~libomptarget~lldb~omp_debug~z3' * llvm: fetch 'llvm5-lld-ELF-Symbols.patch' from FreeBSD port repo * llvm: fetch most of 'missing-includes.patch' from upstream repo and reuse 'llvm-gcc11.patch' * llvm: regroup patches for missing include directives and drop compiler constraints for them * llvm: fetch 'llvm-gcc11.patch' from upstream repo * llvm: fetch 'no_cyclades.patch' from upstream repo * llvm: update comments and condition for 'no_cyclades9.patch' * llvm: rename variant 'omp' to 'openmp' * llvm: constrain and rename variant 'omp_tsan' to 'libomp_tsan' * llvm: rename variant 'omp_debug' to 'libomptarget_debug' * llvm: do not apply same patch twice * llvm: constrain and document the '*-thread.patch' patches * llvm: document the '~lld+libomptarget' conflict * llvm: update comments for the 'D133513.diff' patch
2023-05-22llvm: Fix hwloc@1 and hwloc@:2.3 compatibility (#35387)Jordan Galby1-1/+8
2023-05-19llvm: add version 16.0.3 (#37472)Satish Balay1-0/+1
2023-05-16Update llvm recipe regarding libomptarget. (#36675)Ye Luo1-7/+28
2023-05-04cmake build system: change default build type to `Release` (#36679)Massimiliano Culpo1-6/+0
This switches the default Make build type to `build_type=Release`. This offers: - higher optimization level, including loop vectorization on older GCC - adds NDEBUG define, which disables assertions, which could cause speedups if assertions are in loops etc - no `-g` means smaller install size Downsides are: - worse backtraces (though this does NOT strip symbols) - perf reports may be useless - no function arguments / local variables in debugger (could be of course) - no file path / line numbers in debugger The downsides can be mitigated by overriding to `build_type=RelWithDebInfo` in `packages.yaml`, if needed. The upside is that builds will be MUCH smaller (and faster) with this change. --------- Co-authored-by: Gregory Becker <becker33@llnl.gov>
2023-04-28Fixing patch version constraint for llvm external ncurses patch (#37145)dale-mittleman1-2/+2
2023-04-27fixes #29350 by enabling headers variant in binutils when compiling llvm ↵Thomas-Ulrich1-1/+1
with gold (#37245)
2023-04-20add-llvm-1601-1602 (#37026)Paul R. C. Kent1-0/+2
2023-04-04llvm: add missing zstd dep (#36613)Harmen Stoppels1-0/+10
2023-03-20llvm: add v16 (#36239)Harmen Stoppels1-0/+6
2023-03-18cmake build system: make "generator" a variant (#35552)Massimiliano Culpo1-2/+1
2023-02-16Style: black 23, skip magic trailing comma (#35351)Adam J. Stewart1-16/+4
* Style: black 23, skip magic trailing commas * isort should use same line length as black * Fix unused import * Update version of black used in CI * Update new packages * Update new packages
2023-02-01Use the `maintainers` directive in all packages (#35201)Massimiliano Culpo1-1/+1
2023-01-18license year bump (#34921)Harmen Stoppels1-1/+1
* license bump year * fix black issues of modified files * mypy * fix 2021 -> 2023
2023-01-13Add 15.0.7 (#34912)Paul R. C. Kent1-0/+1
2023-01-03LLVM: Update HWLOC dep version (#34780)kwryankrattiger1-0/+1
2022-12-17LLVM: replace libelf dependency with elf (#34265)iarspider1-7/+3
* LLVM: replace libelf dependency with elf I didn't test this extensively, but in CMS LLVM builds just fine with elfutils. * [@spackbot] updating style on behalf of iarspider Co-authored-by: iarspider <iarspider@users.noreply.github.com>
2022-11-29add 15.0.5, 15.0.6 (#34194)Paul R. C. Kent1-0/+2
2022-11-22Python: drop EOL versions (#33898)Adam J. Stewart1-35/+3
This PR removes [end of life](https://endoflife.date/python) versions of Python from Spack. Specifically, this includes all versions of Python older than 3.7. See https://github.com/spack/spack/discussions/31824 for rationale. Deprecated in #32615. And #28003. For anyone using software that relies on Python 2, you have a few options: * Upgrade the software to support Python 3. The `3to2` tool may get you most of the way there, although more complex libraries may need manual tweaking. * Add Python 2 as an [external package](https://spack.readthedocs.io/en/latest/build_settings.html#external-packages). Many Python libraries do not support Python 2, but you may be able to add older versions that did once upon a time. * Use Spack 0.19. Spack 0.19 is the last release to officially support Python 3.6 and older * Create and maintain your own [custom repository](https://spack.readthedocs.io/en/latest/repositories.html). Basically, you would need a package for Python 2 and any other Python 2-specific libraries you need.
2022-11-02llvm: add 15.0.3, 15.0.4 (#33651)Paul R. C. Kent1-0/+2
* v1503 * v1504
2022-10-11Specify GCC prefix in LLVM-based compilers (#33146)Harmen Stoppels1-11/+1
* spack.compiler.Compiler: introduce prefix property We currently don't really have something that gives the GCC install path, which is used by many LLVM-based compilers (llvm, llvm-amdgpu, nvhpc, ...) to fix the GCC toolchain once and for all. This `prefix` property is dynamic in the sense that it queries the compiler itself. This is necessary because it's not easy to deduce the install path from the `cc` property (might be a symlink, might be a filename like `gcc` which works by having the compiler load a module that sets the PATH variable, might be a generic compiler wrapper based on environment variables like on cray...). With this property introduced, we can clean up some recipes that have the logic repeated for GCC. * intel-oneapi-compilers: set --gcc-sysroot to %gcc prefix
2022-10-04llvm: add 15.0.1, 15.0.2 (#32983)Paul R. C. Kent1-39/+41
* llvm: 15.0.1, 15.0.2 * Requested format change
2022-10-04Remove CMakePackage.define alias from most packages (#32950)Massimiliano Culpo1-2/+2
2022-09-29Add patch to link pthread library for llvm 15 (#32838)Mikael Simberg1-0/+1
2022-09-14llvm: fix detection of LLDB_PYTHON_EXE_RELATIVE_PATH (#32584)Sergey Kosukhin1-0/+6
2022-09-07llvm: add 15.0.0 (#32536)Satish Balay1-2/+2
2022-08-31llvm: fix 15.0.0rc builds on MacOS with command-line-tools (#32397)Satish Balay1-5/+18
* llvm: fix 15.0.0rc builds on MacOS with command-line-tools Ref: https://github.com/llvm/llvm-project/issues/57037 i.e use -DBUILTINS_CMAKE_ARGS=-DCOMPILER_RT_ENABLE_IOS=OFF. But this needs switching "compiler-rt" from "projects" to "runtimes". Also fixing the warnings below fixes compile errors CMake Warning at CMakeLists.txt:101 (message): Using LLVM_ENABLE_PROJECTS=libcxx is deprecated now, please use -DLLVM_ENABLE_RUNTIMES=libcxx or see the instructions at https://libcxx.llvm.org/BuildingLibcxx.html for building the runtimes. CMake Warning at CMakeLists.txt:101 (message): Using LLVM_ENABLE_PROJECTS=libcxxabi is deprecated now, please use -DLLVM_ENABLE_RUNTIMES=libcxxabi or see the instructions at https://libcxx.llvm.org/BuildingLibcxx.html for building the runtimes. CMake Warning at CMakeLists.txt:101 (message): Using LLVM_ENABLE_PROJECTS=libunwind is deprecated now, please use -DLLVM_ENABLE_RUNTIMES=libunwind or see the instructions at https://libcxx.llvm.org/BuildingLibcxx.html for building the runtimes. /private/var/folders/nt/_m1t_x7j76q6sl3xt91tqgs00000gn/T/balay/spack-stage/spack-stage-llvm-15.0.0-rc2-h2t5bohzyy7exz2ub3m42pfycjcmbndk/spack-build-h2t5boh/include/c++/v1/cstdlib:135:9: error: no member named 'at_quick_exit' in the global namespace using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; ~~^ * Update var/spack/repos/builtin/packages/llvm/package.py Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>