diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index f04e699c..2e0430f9 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -11,7 +11,15 @@ jobs:
linux_64_:
CONFIG: linux_64_
UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64
+ linux_aarch64_:
+ CONFIG: linux_aarch64_
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64
+ linux_ppc64le_:
+ CONFIG: linux_ppc64le_
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-ppc64le
timeoutInMinutes: 360
steps:
@@ -32,6 +40,11 @@ jobs:
export CI=azure
export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
+ if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then
+ export IS_PR_BUILD="True"
+ else
+ export IS_PR_BUILD="False"
+ fi
.scripts/run_docker_build.sh
displayName: Run docker build
env:
diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index 39baad3f..84d4f421 100755
--- a/.azure-pipelines/azure-pipelines-osx.yml
+++ b/.azure-pipelines/azure-pipelines-osx.yml
@@ -23,6 +23,11 @@ jobs:
export OSX_FORCE_SDK_DOWNLOAD="1"
export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
+ if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then
+ export IS_PR_BUILD="True"
+ else
+ export IS_PR_BUILD="False"
+ fi
./.scripts/run_osx_build.sh
displayName: Run OSX build
env:
diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml
index 1fd8ea12..e8029d96 100755
--- a/.azure-pipelines/azure-pipelines-win.yml
+++ b/.azure-pipelines/azure-pipelines-win.yml
@@ -5,7 +5,7 @@
jobs:
- job: win
pool:
- vmImage: vs2017-win2016
+ vmImage: windows-2019
strategy:
matrix:
win_64_:
@@ -52,7 +52,7 @@ jobs:
- task: CondaEnvironment@1
inputs:
- packageSpecs: 'python=3.6 conda-build conda "conda-forge-ci-setup=3" pip' # Optional
+ packageSpecs: 'python=3.9 conda-build conda "conda-forge-ci-setup=3" pip boa' # Optional
installOptions: "-c conda-forge"
updateConda: true
displayName: Install conda-build and activate environment
@@ -86,7 +86,7 @@ jobs:
- script: |
call activate base
- conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml
+ conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables
displayName: Build recipe
env:
PYTHONUNBUFFERED: 1
@@ -107,4 +107,4 @@ jobs:
BINSTAR_TOKEN: $(BINSTAR_TOKEN)
FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN)
STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN)
- condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False')))
\ No newline at end of file
+ condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False')), not(eq(variables['Build.Reason'], 'PullRequest')))
\ No newline at end of file
diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml
index 4d9b930a..3ef0b661 100644
--- a/.ci_support/linux_64_.yaml
+++ b/.ci_support/linux_64_.yaml
@@ -1,7 +1,7 @@
cdt_name:
- cos6
channel_sources:
-- conda-forge,defaults
+- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
@@ -9,14 +9,13 @@ cxx_compiler:
cxx_compiler_version:
- '9'
docker_image:
-- quay.io/condaforge/linux-anvil-comp7
+- quay.io/condaforge/linux-anvil-cos7-x86_64
perl:
-- 5.26.2
+- 5.32.1
pin_run_as_build:
- perl:
- max_pin: x.x.x
+ zlib:
+ max_pin: x.x
target_platform:
- linux-64
-zip_keys:
-- - cdt_name
- - docker_image
+zlib:
+- '1.2'
diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml
index b9ef0c22..7dc25b84 100644
--- a/.ci_support/linux_aarch64_.yaml
+++ b/.ci_support/linux_aarch64_.yaml
@@ -15,9 +15,11 @@ cxx_compiler_version:
docker_image:
- quay.io/condaforge/linux-anvil-aarch64
perl:
-- 5.26.2
+- 5.32.1
pin_run_as_build:
- perl:
- max_pin: x.x.x
+ zlib:
+ max_pin: x.x
target_platform:
- linux-aarch64
+zlib:
+- '1.2'
diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml
index b933c796..ab8c4113 100644
--- a/.ci_support/linux_ppc64le_.yaml
+++ b/.ci_support/linux_ppc64le_.yaml
@@ -1,7 +1,7 @@
cdt_name:
- cos7
channel_sources:
-- conda-forge,defaults
+- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
@@ -11,9 +11,11 @@ cxx_compiler_version:
docker_image:
- quay.io/condaforge/linux-anvil-ppc64le
perl:
-- 5.26.2
+- 5.32.1
pin_run_as_build:
- perl:
- max_pin: x.x.x
+ zlib:
+ max_pin: x.x
target_platform:
- linux-ppc64le
+zlib:
+- '1.2'
diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml
index def0864c..33c68036 100644
--- a/.ci_support/osx_64_.yaml
+++ b/.ci_support/osx_64_.yaml
@@ -1,7 +1,7 @@
MACOSX_DEPLOYMENT_TARGET:
- '10.9'
channel_sources:
-- conda-forge,defaults
+- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
@@ -11,9 +11,6 @@ cxx_compiler_version:
macos_machine:
- x86_64-apple-darwin13.4.0
perl:
-- 5.26.2
-pin_run_as_build:
- perl:
- max_pin: x.x.x
+- 5.32.1
target_platform:
- osx-64
diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml
index 95996ac6..21fa4258 100644
--- a/.ci_support/osx_arm64_.yaml
+++ b/.ci_support/osx_arm64_.yaml
@@ -1,7 +1,7 @@
MACOSX_DEPLOYMENT_TARGET:
- '11.0'
channel_sources:
-- conda-forge/label/rust_dev,conda-forge
+- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
@@ -11,9 +11,6 @@ cxx_compiler_version:
macos_machine:
- arm64-apple-darwin20.0.0
perl:
-- 5.32.0
-pin_run_as_build:
- perl:
- max_pin: x.x.x
+- 5.32.1
target_platform:
- osx-arm64
diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml
index 06249cbd..114948d3 100644
--- a/.ci_support/win_64_.yaml
+++ b/.ci_support/win_64_.yaml
@@ -1,14 +1,11 @@
channel_sources:
-- conda-forge,defaults
+- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
- vs2017
perl:
-- 5.26.2
-pin_run_as_build:
- perl:
- max_pin: x.x.x
+- 5.32.1
target_platform:
- win-64
vc:
diff --git a/.drone.yml b/.drone.yml
deleted file mode 100644
index af150917..00000000
--- a/.drone.yml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-kind: pipeline
-name: linux_aarch64_
-
-platform:
- os: linux
- arch: arm64
-
-steps:
-- name: Install and build
- image: quay.io/condaforge/linux-anvil-aarch64
- environment:
- CONFIG: linux_aarch64_
- UPLOAD_PACKAGES: True
- PLATFORM: linux-aarch64
- BINSTAR_TOKEN:
- from_secret: BINSTAR_TOKEN
- FEEDSTOCK_TOKEN:
- from_secret: FEEDSTOCK_TOKEN
- STAGING_BINSTAR_TOKEN:
- from_secret: STAGING_BINSTAR_TOKEN
- commands:
- - export FEEDSTOCK_ROOT="$DRONE_WORKSPACE"
- - export RECIPE_ROOT="$FEEDSTOCK_ROOT/recipe"
- - export CI=drone
- - export GIT_BRANCH="$DRONE_BRANCH"
- - export FEEDSTOCK_NAME=$(basename ${DRONE_REPO_NAME})
- - sed -i '$ichown -R conda:conda "$FEEDSTOCK_ROOT"' /opt/docker/bin/entrypoint
- - /opt/docker/bin/entrypoint $FEEDSTOCK_ROOT/.scripts/build_steps.sh
- - echo "Done building"
-
diff --git a/.gitattributes b/.gitattributes
index 9060b272..ce52713a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -18,6 +18,7 @@ bld.bat text eol=crlf
.gitignore linguist-generated=true
.travis.yml linguist-generated=true
.scripts/* linguist-generated=true
+.woodpecker.yml linguist-generated=true
LICENSE.txt linguist-generated=true
README.md linguist-generated=true
azure-pipelines.yml linguist-generated=true
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 2cb12bd6..5278c5b8 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @beckermr @inducer @isuruf @jakirkham @katietz @yesimon
\ No newline at end of file
+* @beckermr @h-vetinari @inducer @isuruf @jakirkham @katietz @yesimon
\ No newline at end of file
diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index 99baf86d..b3d5b819 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -5,6 +5,8 @@
# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also
# benefit from the improvement.
+# -*- mode: jinja-shell -*-
+
set -xeuo pipefail
export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}"
source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh
@@ -25,9 +27,10 @@ conda-build:
root-dir: ${FEEDSTOCK_ROOT}/build_artifacts
CONDARC
-BUILD_CMD=build
-conda install --yes --quiet "conda-forge-ci-setup=3" conda-build pip ${GET_BOA:-} -c conda-forge
+
+mamba install --update-specs --yes --quiet "conda-forge-ci-setup=3" conda-build pip boa -c conda-forge
+mamba update --update-specs --yes --quiet "conda-forge-ci-setup=3" conda-build pip boa -c conda-forge
# set up the condarc
setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
@@ -37,8 +40,8 @@ source run_conda_forge_build_setup
# make the build number clobber
make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
-if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then
- EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test"
+if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then
+ EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test"
fi
@@ -55,7 +58,7 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then
# Drop into an interactive shell
/bin/bash
else
- conda $BUILD_CMD "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \
+ conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \
--suppress-variables ${EXTRA_CB_OPTIONS:-} \
--clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml"
( startgroup "Validating outputs" ) 2> /dev/null
@@ -66,7 +69,7 @@ else
( startgroup "Uploading packages" ) 2> /dev/null
- if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then
+ if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then
upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
fi
diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh
index 244ccd1f..0c6515fc 100755
--- a/.scripts/run_docker_build.sh
+++ b/.scripts/run_docker_build.sh
@@ -75,12 +75,15 @@ fi
( startgroup "Start Docker" ) 2> /dev/null
export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}"
+export IS_PR_BUILD="${IS_PR_BUILD:-False}"
+docker pull "${DOCKER_IMAGE}"
docker run ${DOCKER_RUN_ARGS} \
-v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \
-v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \
-e CONFIG \
-e HOST_USER_ID \
-e UPLOAD_PACKAGES \
+ -e IS_PR_BUILD \
-e GIT_BRANCH \
-e UPLOAD_ON_BRANCH \
-e CI \
@@ -91,9 +94,9 @@ docker run ${DOCKER_RUN_ARGS} \
-e BINSTAR_TOKEN \
-e FEEDSTOCK_TOKEN \
-e STAGING_BINSTAR_TOKEN \
- $DOCKER_IMAGE \
+ "${DOCKER_IMAGE}" \
bash \
- /home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh
+ "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh"
# verify that the end of the script was reached
test -f "$DONE_CANARY"
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index 708b1e1f..6774b01e 100755
--- a/.scripts/run_osx_build.sh
+++ b/.scripts/run_osx_build.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
+# -*- mode: jinja-shell -*-
+
source .scripts/logging_utils.sh
set -xe
@@ -9,21 +11,21 @@ MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3}
( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null
MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download"
-MINIFORGE_FILE="Miniforge3-MacOSX-x86_64.sh"
+MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh"
curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}"
+rm -rf ${MINIFORGE_HOME}
bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME}
( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null
( startgroup "Configuring conda" ) 2> /dev/null
-BUILD_CMD=build
-
source ${MINIFORGE_HOME}/etc/profile.d/conda.sh
conda activate base
echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build."
-conda install -n base --quiet --yes "conda-forge-ci-setup=3" conda-build pip ${GET_BOA:-}
+mamba install -n base --update-specs --quiet --yes "conda-forge-ci-setup=3" conda-build pip boa
+mamba update -n base --update-specs --quiet --yes "conda-forge-ci-setup=3" conda-build pip boa
@@ -57,7 +59,7 @@ if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then
EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test"
fi
-conda $BUILD_CMD ./recipe -m ./.ci_support/${CONFIG}.yaml --suppress-variables --clobber-file ./.ci_support/clobber_${CONFIG}.yaml ${EXTRA_CB_OPTIONS:-}
+conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml --suppress-variables --clobber-file ./.ci_support/clobber_${CONFIG}.yaml ${EXTRA_CB_OPTIONS:-}
( startgroup "Validating outputs" ) 2> /dev/null
validate_recipe_outputs "${FEEDSTOCK_NAME}"
@@ -66,7 +68,7 @@ validate_recipe_outputs "${FEEDSTOCK_NAME}"
( startgroup "Uploading packages" ) 2> /dev/null
-if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then
+if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then
upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml
fi
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index ecb962de..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated automatically from conda-smithy. To update this configuration,
-# update the conda-forge.yml and/or the recipe/meta.yaml.
-
-language: generic
-
-
-
-matrix:
- include:
- - env: CONFIG=linux_ppc64le_ UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=quay.io/condaforge/linux-anvil-ppc64le
- os: linux
- arch: ppc64le
- dist: focal
-
-script:
- - export CI=travis
- - export GIT_BRANCH="$TRAVIS_BRANCH"
- - export FEEDSTOCK_NAME=$(basename ${TRAVIS_REPO_SLUG})
-
-
- - if [[ ${PLATFORM} =~ .*linux.* ]]; then ./.scripts/run_docker_build.sh; fi
\ No newline at end of file
diff --git a/LICENSE.txt b/LICENSE.txt
index ed3f451e..6ec14012 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,5 +1,5 @@
BSD 3-clause license
-Copyright (c) 2015-2021, conda-forge contributors
+Copyright (c) 2015-2022, conda-forge contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
diff --git a/README.md b/README.md
index 0de3197a..50763fce 100644
--- a/README.md
+++ b/README.md
@@ -13,21 +13,7 @@ Current build status
====================
-
- | Travis |
-
-
-
-
- |
-
- | Drone |
-
-
-
-
- |
-
+
| Azure |
@@ -123,7 +109,8 @@ conda search llvm-openmp --channel conda-forge
About conda-forge
=================
-[](http://numfocus.org)
+[](https://numfocus.org)
conda-forge is a community-led conda channel of installable packages.
In order to provide high-quality builds, the process has been automated into the
@@ -184,6 +171,7 @@ Feedstock Maintainers
=====================
* [@beckermr](https://github.com/beckermr/)
+* [@h-vetinari](https://github.com/h-vetinari/)
* [@inducer](https://github.com/inducer/)
* [@isuruf](https://github.com/isuruf/)
* [@jakirkham](https://github.com/jakirkham/)
diff --git a/build-locally.py b/build-locally.py
index 00eeb34b..8b743489 100755
--- a/build-locally.py
+++ b/build-locally.py
@@ -13,6 +13,7 @@
def setup_environment(ns):
os.environ["CONFIG"] = ns.config
os.environ["UPLOAD_PACKAGES"] = "False"
+ os.environ["IS_PR_BUILD"] = "True"
if ns.debug:
os.environ["BUILD_WITH_CONDA_DEBUG"] = "1"
if ns.output_id:
@@ -21,6 +22,10 @@ def setup_environment(ns):
os.environ["MINIFORGE_HOME"] = os.path.join(
os.path.dirname(__file__), "miniforge3"
)
+ if "OSX_SDK_DIR" not in os.environ:
+ os.environ["OSX_SDK_DIR"] = os.path.join(
+ os.path.dirname(__file__), "SDKs"
+ )
def run_docker_build(ns):
diff --git a/conda-forge.yml b/conda-forge.yml
index 0a66ce74..8c9b4035 100644
--- a/conda-forge.yml
+++ b/conda-forge.yml
@@ -1,8 +1,5 @@
-provider:
- linux_ppc64le: default
- linux_aarch64: default
+build_platform: {osx_arm64: osx_64}
+channel_priority: flexible
conda_forge_output_validation: true
-build_platform:
- osx_arm64: osx_64
+provider: {linux_aarch64: azure, linux_ppc64le: azure}
test_on_native_only: true
-channel_priority: flexible
diff --git a/recipe/f1b9ce2736d826df2ff4cbd67116864f0856334f.patch b/recipe/f1b9ce2736d826df2ff4cbd67116864f0856334f.patch
deleted file mode 100644
index 43aa01f7..00000000
--- a/recipe/f1b9ce2736d826df2ff4cbd67116864f0856334f.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From f1b9ce2736d826df2ff4cbd67116864f0856334f Mon Sep 17 00:00:00 2001
-From: Hansang Bae
-Date: Wed, 30 Jun 2021 14:01:04 -0500
-Subject: [PATCH] [OpenMP] Fix a few issues with hidden helper task
-
-This patch includes the following changes to address a few issues when
-using hidden helper task.
-
-- Assertion is triggered when there are inadvertent calls to hidden
- helper functions on non-Linux OS
-- Added deinit code in __kmp_internal_end_library function to fix random
- shutdown crashes
-- Moved task data access into the lock-guarded region in __kmp_push_task
-
-Differential Revision: https://reviews.llvm.org/D105308
----
- openmp/runtime/src/kmp_runtime.cpp | 16 ++++++++++--
- openmp/runtime/src/kmp_tasking.cpp | 4 ++-
- openmp/runtime/src/z_Linux_util.cpp | 40 +++++++++++++++++++++++++++++
- 3 files changed, 57 insertions(+), 3 deletions(-)
-
-diff --git a/openmp/runtime/src/kmp_runtime.cpp b/openmp/runtime/src/kmp_runtime.cpp
-index 414e9ba4e36d7..f6a53825f2d10 100644
---- a/openmp/runtime/src/kmp_runtime.cpp
-+++ b/openmp/runtime/src/kmp_runtime.cpp
-@@ -6204,6 +6204,16 @@ void __kmp_internal_end_library(int gtid_req) {
- return;
- }
-
-+ // If hidden helper team has been initialized, we need to deinit it
-+ if (TCR_4(__kmp_init_hidden_helper) &&
-+ !TCR_4(__kmp_hidden_helper_team_done)) {
-+ TCW_SYNC_4(__kmp_hidden_helper_team_done, TRUE);
-+ // First release the main thread to let it continue its work
-+ __kmp_hidden_helper_main_thread_release();
-+ // Wait until the hidden helper team has been destroyed
-+ __kmp_hidden_helper_threads_deinitz_wait();
-+ }
-+
- KMP_MB(); /* Flush all pending memory write invalidates. */
- /* find out who we are and what we should do */
- {
-@@ -6317,7 +6327,8 @@ void __kmp_internal_end_thread(int gtid_req) {
- }
-
- // If hidden helper team has been initialized, we need to deinit it
-- if (TCR_4(__kmp_init_hidden_helper)) {
-+ if (TCR_4(__kmp_init_hidden_helper) &&
-+ !TCR_4(__kmp_hidden_helper_team_done)) {
- TCW_SYNC_4(__kmp_hidden_helper_team_done, TRUE);
- // First release the main thread to let it continue its work
- __kmp_hidden_helper_main_thread_release();
-@@ -8697,11 +8708,12 @@ void __kmp_omp_display_env(int verbose) {
- // Globals and functions for hidden helper task
- kmp_info_t **__kmp_hidden_helper_threads;
- kmp_info_t *__kmp_hidden_helper_main_thread;
--kmp_int32 __kmp_hidden_helper_threads_num = 8;
- std::atomic __kmp_unexecuted_hidden_helper_tasks;
- #if KMP_OS_LINUX
-+kmp_int32 __kmp_hidden_helper_threads_num = 8;
- kmp_int32 __kmp_enable_hidden_helper = TRUE;
- #else
-+kmp_int32 __kmp_hidden_helper_threads_num = 0;
- kmp_int32 __kmp_enable_hidden_helper = FALSE;
- #endif
-
-diff --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp
-index 62f0bdca4be93..7dfd256801b5a 100644
---- a/openmp/runtime/src/kmp_tasking.cpp
-+++ b/openmp/runtime/src/kmp_tasking.cpp
-@@ -436,10 +436,12 @@ static kmp_int32 __kmp_push_task(kmp_int32 gtid, kmp_task_t *task) {
- gtid, taskdata, thread_data->td.td_deque_ntasks,
- thread_data->td.td_deque_head, thread_data->td.td_deque_tail));
-
-+ auto hidden_helper = taskdata->td_flags.hidden_helper;
-+
- __kmp_release_bootstrap_lock(&thread_data->td.td_deque_lock);
-
- // Signal one worker thread to execute the task
-- if (taskdata->td_flags.hidden_helper) {
-+ if (UNLIKELY(hidden_helper)) {
- // Wake hidden helper threads up if they're sleeping
- __kmp_hidden_helper_worker_thread_signal();
- }
-diff --git a/openmp/runtime/src/z_Linux_util.cpp b/openmp/runtime/src/z_Linux_util.cpp
-index bd50987a857ac..5c2486904a76e 100644
---- a/openmp/runtime/src/z_Linux_util.cpp
-+++ b/openmp/runtime/src/z_Linux_util.cpp
-@@ -25,7 +25,9 @@
- #include
- #endif
- #include // HUGE_VAL.
-+#if KMP_OS_LINUX
- #include
-+#endif // KMP_OS_LINUX
- #include
- #include
- #include
-@@ -2468,6 +2470,7 @@ int __kmp_invoke_microtask(microtask_t pkfn, int gtid, int tid, int argc,
-
- #endif
-
-+#if KMP_OS_LINUX
- // Functions for hidden helper task
- namespace {
- // Condition variable for initializing hidden helper team
-@@ -2628,5 +2631,42 @@ void __kmp_hidden_helper_threads_deinitz_release() {
- status = pthread_mutex_unlock(&hidden_helper_threads_deinitz_lock);
- KMP_CHECK_SYSFAIL("pthread_mutex_unlock", status);
- }
-+#else // KMP_OS_LINUX
-+void __kmp_hidden_helper_worker_thread_wait() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_do_initialize_hidden_helper_threads() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_threads_initz_wait() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_initz_release() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_main_thread_wait() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_main_thread_release() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_worker_thread_signal() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_threads_deinitz_wait() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+
-+void __kmp_hidden_helper_threads_deinitz_release() {
-+ KMP_ASSERT(0 && "Hidden helper task is not supported on this OS");
-+}
-+#endif // KMP_OS_LINUX
-
- // end of file //
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 6f7d53ee..c68371d8 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,4 +1,4 @@
-{% set version = "12.0.1" %}
+{% set version = "13.0.1" %}
{% set openmp_ver = "4.5" %}
package:
@@ -7,12 +7,13 @@ package:
source:
url: https://github.com/llvm/llvm-project/releases/download/llvmorg-{{ version.replace(".rc", "-rc") }}/openmp-{{ version.replace(".rc", "rc") }}.src.tar.xz
- sha256: 60fe79440eaa9ebf583a6ea7f81501310388c02754dbe7dc210776014d06b091
+ sha256: 6b79261371616c31fea18cd3ee1797c79ee38bcaf8417676d4fa366a24c96b4f
patches:
- - f1b9ce2736d826df2ff4cbd67116864f0856334f.patch
+ # minimal backport of https://reviews.llvm.org/D117230 to branch 13.x
+ - patches/0001-openmp-devicertl-Handle-missing-clang_tool.patch
build:
- number: 1
+ number: 0
skip: true # [win and vc<14]
outputs:
@@ -39,6 +40,7 @@ outputs:
- ninja # [win]
host:
- llvmdev {{ version }}|{{ version }}.*
+ - zlib # [linux]
run_constrained:
- clangdev {{ version }}|{{ version }}.*
- llvmdev {{ version }}|{{ version }}.*
@@ -64,7 +66,7 @@ outputs:
about:
home: http://openmp.llvm.org/
license: NCSA
- license_file: LICENSE.txt
+ license_file: LICENSE.TXT
summary: The OpenMP API supports multi-platform shared-memory parallel programming in C/C++ and Fortran.
extra:
@@ -75,3 +77,4 @@ extra:
- isuruf
- beckermr
- katietz
+ - h-vetinari
diff --git a/recipe/patches/0001-openmp-devicertl-Handle-missing-clang_tool.patch b/recipe/patches/0001-openmp-devicertl-Handle-missing-clang_tool.patch
new file mode 100644
index 00000000..48e39d71
--- /dev/null
+++ b/recipe/patches/0001-openmp-devicertl-Handle-missing-clang_tool.patch
@@ -0,0 +1,41 @@
+From b73ae2ec99d93ae07f50909192460cc1ffd6c04e Mon Sep 17 00:00:00 2001
+From: Jon Chesterfield
+Date: Thu, 13 Jan 2022 22:43:25 +0000
+Subject: [PATCH] [openmp][devicertl] Handle missing clang_tool
+
+Fixes github issues/52910
+
+Reviewed By: jdoerfert
+
+Differential Revision: https://reviews.llvm.org/D117230
+
+Minimal backport to release/13.x by: H. Vetinari
+---
+ openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+index e398f398c776..33e454ca5ca7 100644
+--- a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
++++ b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+@@ -33,10 +33,14 @@ endif()
+ if (LLVM_DIR)
+ # Builds that use pre-installed LLVM have LLVM_DIR set.
+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
+- find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR}
+- NO_DEFAULT_PATH)
++ find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
+- libomptarget_say("Building AMDGCN device RTL. Using clang: ${CLANG_TOOL}")
++ if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL))
++ libomptarget_say("Not building AMDGCN device RTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL} or opt: ${OPT_TOOL}")
++ return()
++ else()
++ libomptarget_say("Building AMDGCN device RTL. Using clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL} and opt: ${OPT_TOOL}")
++ endif()
+ else()
+ # LLVM in-tree builds may use CMake target names to discover the tools.
+ set(CLANG_TOOL $)
+--
+2.32.0.windows.2
+