From 9f6ba4ec19352f223a4f88ebbdb2ca20b39586e5 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 28 Feb 2024 12:56:07 +1100 Subject: [PATCH 1/4] llvmdev 18.1.0.rc4 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5bd58a3c..826d07dd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "18.1.0.rc1" %} +{% set version = "18.1.0.rc4" %} {% set major_ver = version.split(".")[0] %} # as of LLVM 17, we expect an "rc" suffix for the release candidates @@ -11,7 +11,7 @@ package: source: url: https://github.com/llvm/llvm-project/releases/download/llvmorg-{{ version.replace(".rc", "-rc") }}/llvm-project-{{ version.replace(".rc", "rc") }}.src.tar.xz - sha256: eb1a2751408e4cbb08b152285b23dea00e4a1bc2cd28c0df90fe1ce699671154 + sha256: bc1d243472ee4868e20760c100049078343a89aa34549c69dbab389c68e0c473 patches: # - patches/intel-D47188-svml-VF.patch # Fixes vectorizer and extends SVML support # - patches/expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch # adjusts test added in 10.0.0 for intel-D47188-svml-VF.patch effects From 481d9c042a4577e0b78631723232c4b09b835f28 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 28 Feb 2024 13:04:56 +1100 Subject: [PATCH 2/4] MNT: Re-rendered with conda-build 24.1.2, conda-smithy 3.31.1, and conda-forge-pinning 2024.02.27.06.32.03 --- .scripts/build_steps.sh | 6 +++--- .scripts/run_osx_build.sh | 6 +++--- .scripts/run_win_build.bat | 4 ++-- README.md | 26 +++++++++++++------------- build-locally.py | 5 +++-- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index beda247e..9121002a 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -34,9 +34,9 @@ CONDARC export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build boa conda-forge-ci-setup=4 + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build boa conda-forge-ci-setup=4 + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -68,7 +68,7 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else - conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 9259eb93..16daa698 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -26,9 +26,9 @@ export CONDA_SOLVER="libmamba" export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \ - pip mamba conda-build boa conda-forge-ci-setup=4 + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ - pip mamba conda-build boa conda-forge-ci-setup=4 + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" @@ -81,7 +81,7 @@ else EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" fi - conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ + conda build ./recipe -m ./.ci_support/${CONFIG}.yaml \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 48734de9..f801cf46 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -24,7 +24,7 @@ set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" :: Provision the necessary dependencies to build the recipe later echo Installing dependencies -mamba.exe install "python=3.10" pip mamba conda-build boa conda-forge-ci-setup=4 -c conda-forge --strict-channel-priority --yes +mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes if !errorlevel! neq 0 exit /b !errorlevel! :: Set basic configuration @@ -55,7 +55,7 @@ call :end_group :: Build the recipe echo Building recipe -conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% if !errorlevel! neq 0 exit /b !errorlevel! :: Prepare some environment variables for the upload step diff --git a/README.md b/README.md index 97711576..9c767a5d 100644 --- a/README.md +++ b/README.md @@ -83,8 +83,8 @@ Current release info | Name | Downloads | Version | Platforms | | --- | --- | --- | --- | -| [![Conda Recipe](https://img.shields.io/badge/recipe-libllvm--c17-green.svg)](https://anaconda.org/conda-forge/libllvm-c17) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libllvm-c17.svg)](https://anaconda.org/conda-forge/libllvm-c17) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libllvm-c17.svg)](https://anaconda.org/conda-forge/libllvm-c17) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libllvm-c17.svg)](https://anaconda.org/conda-forge/libllvm-c17) | -| [![Conda Recipe](https://img.shields.io/badge/recipe-libllvm17-green.svg)](https://anaconda.org/conda-forge/libllvm17) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libllvm17.svg)](https://anaconda.org/conda-forge/libllvm17) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libllvm17.svg)](https://anaconda.org/conda-forge/libllvm17) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libllvm17.svg)](https://anaconda.org/conda-forge/libllvm17) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-libllvm--c18-green.svg)](https://anaconda.org/conda-forge/libllvm-c18) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libllvm-c18.svg)](https://anaconda.org/conda-forge/libllvm-c18) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libllvm-c18.svg)](https://anaconda.org/conda-forge/libllvm-c18) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libllvm-c18.svg)](https://anaconda.org/conda-forge/libllvm-c18) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-libllvm18-green.svg)](https://anaconda.org/conda-forge/libllvm18) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libllvm18.svg)](https://anaconda.org/conda-forge/libllvm18) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libllvm18.svg)](https://anaconda.org/conda-forge/libllvm18) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libllvm18.svg)](https://anaconda.org/conda-forge/libllvm18) | | [![Conda Recipe](https://img.shields.io/badge/recipe-lit-green.svg)](https://anaconda.org/conda-forge/lit) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/lit.svg)](https://anaconda.org/conda-forge/lit) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/lit.svg)](https://anaconda.org/conda-forge/lit) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/lit.svg)](https://anaconda.org/conda-forge/lit) | | [![Conda Recipe](https://img.shields.io/badge/recipe-llvm-green.svg)](https://anaconda.org/conda-forge/llvm) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/llvm.svg)](https://anaconda.org/conda-forge/llvm) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/llvm.svg)](https://anaconda.org/conda-forge/llvm) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/llvm.svg)](https://anaconda.org/conda-forge/llvm) | | [![Conda Recipe](https://img.shields.io/badge/recipe-llvm--tools-green.svg)](https://anaconda.org/conda-forge/llvm-tools) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/llvm-tools.svg)](https://anaconda.org/conda-forge/llvm-tools) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/llvm-tools.svg)](https://anaconda.org/conda-forge/llvm-tools) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/llvm-tools.svg)](https://anaconda.org/conda-forge/llvm-tools) | @@ -100,41 +100,41 @@ conda config --add channels conda-forge/label/llvm_rc conda config --set channel_priority strict ``` -Once the `conda-forge/label/llvm_rc` channel has been enabled, `libllvm-c17, libllvm17, lit, llvm, llvm-tools, llvmdev` can be installed with `conda`: +Once the `conda-forge/label/llvm_rc` channel has been enabled, `libllvm-c18, libllvm18, lit, llvm, llvm-tools, llvmdev` can be installed with `conda`: ``` -conda install libllvm-c17 libllvm17 lit llvm llvm-tools llvmdev +conda install libllvm-c18 libllvm18 lit llvm llvm-tools llvmdev ``` or with `mamba`: ``` -mamba install libllvm-c17 libllvm17 lit llvm llvm-tools llvmdev +mamba install libllvm-c18 libllvm18 lit llvm llvm-tools llvmdev ``` -It is possible to list all of the versions of `libllvm-c17` available on your platform with `conda`: +It is possible to list all of the versions of `libllvm-c18` available on your platform with `conda`: ``` -conda search libllvm-c17 --channel conda-forge/label/llvm_rc +conda search libllvm-c18 --channel conda-forge/label/llvm_rc ``` or with `mamba`: ``` -mamba search libllvm-c17 --channel conda-forge/label/llvm_rc +mamba search libllvm-c18 --channel conda-forge/label/llvm_rc ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libllvm-c17 --channel conda-forge/label/llvm_rc +mamba repoquery search libllvm-c18 --channel conda-forge/label/llvm_rc -# List packages depending on `libllvm-c17`: -mamba repoquery whoneeds libllvm-c17 --channel conda-forge/label/llvm_rc +# List packages depending on `libllvm-c18`: +mamba repoquery whoneeds libllvm-c18 --channel conda-forge/label/llvm_rc -# List dependencies of `libllvm-c17`: -mamba repoquery depends libllvm-c17 --channel conda-forge/label/llvm_rc +# List dependencies of `libllvm-c18`: +mamba repoquery depends libllvm-c18 --channel conda-forge/label/llvm_rc ``` diff --git a/build-locally.py b/build-locally.py index 3f4b7a79..e0d408d0 100755 --- a/build-locally.py +++ b/build-locally.py @@ -64,8 +64,9 @@ def verify_config(ns): elif ns.config.startswith("osx"): if "OSX_SDK_DIR" not in os.environ: raise RuntimeError( - "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=SDKs' " - "to download the SDK automatically to 'SDKs/MacOSX.sdk'. " + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " + "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " + "Note: OSX_SDK_DIR must be set to an absolute path. " "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) From cebf7e9a4fc2d41194e9307d0eb94656173abd01 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 29 Feb 2024 08:28:12 +1100 Subject: [PATCH 3/4] skip test suite on osx --- recipe/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 9a4d0dd9..615dc40b 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -67,7 +67,9 @@ else export TEST_CPU_FLAG="" fi -if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then +# should be [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]], +# but osx builds time out when building & running test suite +if [[ "$target_platform" == "linux-64" ]]; then # bin/opt -S -vector-library=SVML $TEST_CPU_FLAG -O3 $RECIPE_DIR/numba-3016.ll | bin/FileCheck $RECIPE_DIR/numba-3016.ll || exit $? if [[ "$target_platform" == linux* ]]; then From 9d5fb50ba790d79d46b0e02124891683daeee96a Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 29 Feb 2024 23:05:41 +1100 Subject: [PATCH 4/4] new version scheme -> SOVER now contains minor, new symlink See https://github.com/llvm/llvm-project/commit/91a384621e5b762d9c173ffd247cfeadd5f436a2 --- recipe/install_llvm.sh | 5 ++--- recipe/meta.yaml | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipe/install_llvm.sh b/recipe/install_llvm.sh index ff297715..e407d3d2 100644 --- a/recipe/install_llvm.sh +++ b/recipe/install_llvm.sh @@ -6,8 +6,8 @@ IFS='.' read -ra VER_ARR <<< "$PKG_VERSION" # temporary prefix to be able to install files more granularly mkdir temp_prefix -# default SOVER for tagged releases is just the major version -SOVER_EXT=${VER_ARR[0]} +# default SOVER for tagged releases is major.minor version +SOVER_EXT="${VER_ARR[0]}.${VER_ARR[1]}" if [[ "${PKG_VERSION}" == *rc* ]]; then # rc's get "rc" without the number SOVER_EXT="${SOVER_EXT}rc" @@ -23,7 +23,6 @@ if [[ "${PKG_NAME}" == libllvm-c* ]]; then elif [[ "${PKG_NAME}" == libllvm* ]]; then cmake --install ./build --prefix=./temp_prefix # all other libraries - mv ./temp_prefix/lib/libLLVM-${SOVER_EXT}${SHLIB_EXT} $PREFIX/lib mv ./temp_prefix/lib/lib*.so.${SOVER_EXT} $PREFIX/lib || true mv ./temp_prefix/lib/lib*.${SOVER_EXT}.dylib $PREFIX/lib || true elif [[ "${PKG_NAME}" == "llvm-tools" ]]; then diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 826d07dd..c420dbc0 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,6 @@ {% set version = "18.1.0.rc4" %} {% set major_ver = version.split(".")[0] %} +{% set maj_min = major_ver ~ "." ~ version.split(".")[1] %} # as of LLVM 17, we expect an "rc" suffix for the release candidates {% set extra = "rc" if version.split(".")[-1] not in "1234567" else "" %} @@ -113,8 +114,8 @@ outputs: - libcxx >={{ cxx_compiler_version }} # [osx] test: commands: - - test -f $PREFIX/lib/libLLVM-{{ major_ver }}{{ extra }}.so # [linux] - - test -f $PREFIX/lib/libLLVM-{{ major_ver }}{{ extra }}.dylib # [osx] + - test -f $PREFIX/lib/libLLVM.so.{{ maj_min }}{{ extra }} # [linux] + - test -f $PREFIX/lib/libLLVM.{{ maj_min }}{{ extra }}.dylib # [osx] # This is a meta package so that people can use the latest libllvm and also # for run_exports