summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/llvm/package.py
AgeCommit message (Collapse)AuthorFilesLines
2024-11-19Add llvm v19.1.4 (#47681)Paul R. C. Kent1-0/+1
2024-11-18llvm: fix sysroot and build on darwin (#47336)Tom Scogland1-1/+19
The default build of clang on darwin couldn't actually build anything because of a lack of a sysroot built in. Also several compilation errors finding the system libc++ cropped up, much like those in GCC, and have been fixed.
2024-11-17spack.package / builtin repo: fix exports/imports (#47617)Harmen Stoppels1-2/+2
Add various missing imports in packages. Remove redundant imports Export NoLibrariesError, NoHeadersError, which_string in spack.package
2024-11-11llvm: filter clang-ocl from the executables being probed (#47536)Massimiliano Culpo1-1/+1
This filters any selected executable ending with `-ocl` from the list of executables being probed as candidate for external `llvm` installations. I couldn't reproduce the entire issue, but with a simple script: ``` #!/bin/bash touch foo.o echo "clang version 10.0.0-4ubuntu1 " echo "Target: x86_64-pc-linux-gnu" echo "Thread model: posix" echo "InstalledDir: /usr/bin" exit 0 ``` I noticed the executable was still probed: ``` $ spack -d compiler find /tmp/ocl [ ... ] ==> [2024-11-11-08:38:41.933618] '/tmp/ocl/bin/clang-ocl' '--version' ``` and `foo.o` was left in the working directory. With this change, instead the executable is filtered out of the list on which we run `--version`, so `clang-ocl --version` is not run by Spack.
2024-11-04llvm: add v19.1.3 (#47325)Paul R. C. Kent1-0/+1
2024-10-24llvm: add v19.1.2 , v19.1.1 (#47113)Paul R. C. Kent1-0/+2
2024-10-14cmake: remove custom CMAKE_INSTALL_RPATH (#46685)Harmen Stoppels1-2/+2
The CMake builder in Spack actually adds incorrect rpaths. They are unfiltered and incorrectly ordered compared to what the compiler wrapper adds. There is no need to specify paths to dependencies in `CMAKE_INSTALL_RPATH` because of two reasons: 1. CMake preserves "toolchain" rpaths, which includes the rpaths injected by our compiler wrapper. 2. We use `CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON`, so libraries we link to are rpath'ed automatically. However, CMake does not create install rpaths to directories in the package's own install prefix, so we set `CMAKE_INSTALL_RPATH` to the educated guess `<prefix>/{lib,lib64}`, but omit dependencies.
2024-10-12Replace if ... in spec with spec.satisfies in k* packages and l* packages ↵Auriane R.1-32/+32
(#46388) * Replace if ... in spec with spec.satisfies in k* packages * Replace if ... in spec with spec.satisfies in l* packages
2024-09-27LLVM: mark cuda_arch compatibility (#46397)Adam J. Stewart1-0/+13
2024-09-25llvm: add v19.1.0 (#46504)Satish Balay1-4/+10
llvm@19 removed LLVM_ENABLE_TERMINFO, so specify spec["ncurses"].libs via cmake option, LLDB_CURSES_LIBS
2024-09-25llvm: Add conflict related to Python `distutils` removal (#46528)Tobias Ribizel1-0/+12
Python 3.12 removed the `distutils` module, which is being required by the build process of LLVM <= 14: Conflict with it for +python. Fix build to not pick host tools like an incompatible Python from host Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-04llvm: improve detection regexes (#46187)Kyle Knoepfel1-2/+2
2024-09-03llvm: be more strict with detection (#46179)Massimiliano Culpo1-2/+2
2024-08-27Introduce offload variant for llvm >= 19. (#45865)Ye Luo1-0/+7
2024-08-19llvm based compilers: filter out non-compilers (#45805)Massimiliano Culpo1-18/+21
2024-07-17Add `depends_on([c,cxx,fortran])` (#45217)Harmen Stoppels1-0/+3
Add language dependencies `c`, `cxx`, and `fortran`. These `depends_on` statements are auto-generated based on file extensions found in source tarballs/zipfiles. The `# generated` comment can be removed by package maintainers after validating correctness.
2024-07-12llvm: detect short executable names (#45171)Massimiliano Culpo1-6/+4
Also, remove annotations for "ld.lld" and "lldb"
2024-06-20Update package.py (#44772)Paul R. C. Kent1-0/+1
2024-06-06Add llvm v18.1.7 (#44581)Paul R. C. Kent1-0/+1
2024-05-20Add llvm v1816 (#44271)Paul R. C. Kent1-0/+1
2024-05-12llvm: add 18.1.5, 18.1.4 (#44123)Paul R. C. Kent1-0/+2
2024-05-06External package detection for compilers (#43464)Greg Becker1-28/+44
This creates shared infrastructure for compiler packages to implement the detailed search capabilities from the `spack compiler find` command for the `spack external find` command. After this commit, `spack compiler find` can be replaced with `spack external find --tag compiler`, with the exception of mixed toolchains.
2024-04-26llvm: use --gcc_install_dir in config files (#43795)Harmen Stoppels1-4/+43
2024-04-22Add libc dependency to compiled packages and runtime depsMassimiliano Culpo1-2/+0
This commit differentiate linux from other platforms by using libc compatibility as a criterion for deciding which buildcaches / binaries can be reused. Other platforms still use OS compatibility. On linux a libc is injected by all compilers as an implicit external, and the compatibility criterion is that a libc is compatible with all other libcs with the same name and a version that is lesser or equal. Some concretization unit tests use libc when run on linux.
2024-04-10Packages: llvm cxx flag remove, new versions, and binutils build issue fix ↵YI Zeping1-4/+2
(#43567) * add c++11 header to gold for compiler not defaulting to c++11 * glibc: add 2.39 * llvm: add 18.1.3 * fix #42314, remove cxx11 flag for llvm; should be controlled by cmake. * modify patch * llvm version * add gmake version request
2024-04-08LLVM: avoid Fujitsu compiler build fail in llvm17-18 (#43387)Kensuke WATANABE1-0/+4
* Avoid Fujitsu compiler Clang Mode options when building LLVM * LLVM: avoid Fujitsu compiler build fail in llvm17-18 * address review comments
2024-03-28llvm: add 18.1.2 (#43401)Paul R. C. Kent1-0/+1
2024-03-10feat: add LLVM v18.1.1 (#43109)Pranav Sivaraman1-0/+1
2024-03-06llvm: add 18.1.0 (#43049)Satish Balay1-0/+1
2024-02-09llvm: add 17.0.5, 17.0.6 (#42571)Paul R. C. Kent1-0/+2
2024-01-27Apply black 2024 style to Spack (#42317)Adam J. Stewart1-3/+3
2024-01-25llvm: disable libomptarget AMDGPU plugin (#42265)Harmen Stoppels1-0/+6
Fixes CI on develop
2024-01-22CMakePackage pass python hints automatically (#42201)kwryankrattiger1-7/+0
This commit ensures that CMake packages that also have Python as a build/link dep get a couple defines for the Python path so that CMake's builtin `FindPython3`, `FindPython`, `FindPythonInterp` modules can locate Python correctly. The main problem with those CMake modules is that they first search for Python versions known at the time of release, meaning that old CMake maybe find older system Python 3.8 even though Python 3.11 comes first in `CMAKE_PREFIX_PATH` and `PATH`. Package maintainers can opt out of this by overriding the `find_python_hints = False` attribute in the package class.
2024-01-13llvm: bring back setup_run_environment (#42032)Harmen Stoppels1-0/+8
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>