diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index d609fcdf..204327b7 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -24,7 +24,7 @@ jobs: scriptSource: inline script: | import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' + url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe' path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" urllib.request.urlretrieve(url, path) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index b5c6b786..6463a355 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -1,9 +1,9 @@ c_stdlib: - sysroot c_stdlib_version: -- '2.12' +- '2.17' cdt_name: -- cos6 +- cos7 channel_sources: - conda-forge channel_targets: @@ -11,9 +11,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' perl: - 5.32.1 target_platform: @@ -21,7 +25,5 @@ target_platform: zip_keys: - - c_stdlib_version - cdt_name -zlib: -- '1' -zstd: -- '1.5' +- - cxx_compiler_version + - fortran_compiler_version diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index 1af00e74..6a2f1d73 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -15,9 +15,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' perl: - 5.32.1 target_platform: @@ -25,7 +29,5 @@ target_platform: zip_keys: - - c_stdlib_version - cdt_name -zlib: -- '1' -zstd: -- '1.5' +- - cxx_compiler_version + - fortran_compiler_version diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 5d6e7504..5f26c88a 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -11,9 +11,13 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' perl: - 5.32.1 target_platform: @@ -21,7 +25,5 @@ target_platform: zip_keys: - - c_stdlib_version - cdt_name -zlib: -- '1' -zstd: -- '1.5' +- - cxx_compiler_version + - fortran_compiler_version diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index c3af28b1..3821329d 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -11,12 +11,19 @@ channel_sources: channel_targets: - conda-forge main cxx_compiler: -- clang_bootstrap +- clangxx cxx_compiler_version: -- '16' +- '17' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' macos_machine: - x86_64-apple-darwin13.4.0 perl: - 5.32.1 target_platform: - osx-64 +zip_keys: +- - cxx_compiler_version + - fortran_compiler_version diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 9b2ceb90..547ba70c 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -11,12 +11,19 @@ channel_sources: channel_targets: - conda-forge main cxx_compiler: -- clang_bootstrap +- clangxx cxx_compiler_version: -- '16' +- '17' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '13' macos_machine: - arm64-apple-darwin20.0.0 perl: - 5.32.1 target_platform: - osx-arm64 +zip_keys: +- - cxx_compiler_version + - fortran_compiler_version diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 8243fda4..9b180432 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -6,6 +6,10 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +fortran_compiler: +- flang +fortran_compiler_version: +- '19' perl: - 5.32.1 target_platform: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index a5836e8d..ba4b251c 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -72,7 +72,6 @@ else --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:-}" - ( startgroup "Inspecting artifacts" ) 2> /dev/null # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index ba0c8791..420f051c 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -11,7 +11,7 @@ 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="Mambaforge-MacOSX-$(uname -m).sh" +MINIFORGE_FILE="Miniforge3-MacOSX-$(uname -m).sh" curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" rm -rf ${MINIFORGE_HOME} bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} diff --git a/build-locally.py b/build-locally.py index e0d408d0..8ac9b846 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,13 +1,16 @@ -#!/usr/bin/env python3 +#!/bin/sh +"""exec' "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os +# The line above this comment is a bash / sh / zsh guard +# to stop people from running it with the wrong interpreter import glob +import os +import platform import subprocess from argparse import ArgumentParser -import platform def setup_environment(ns): diff --git a/conda-forge.yml b/conda-forge.yml index 0a4e7a23..a8cb9fb3 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -2,13 +2,18 @@ bot: abi_migration_branches: - 17.x - 16.x -build_platform: {osx_arm64: osx_64, linux_ppc64le: linux_64, linux_aarch64: linux_64} +build_platform: + linux_aarch64: linux_64 + linux_ppc64le: linux_64 + osx_arm64: osx_64 +conda_build: + pkg_format: '2' + error_overlinking: true conda_forge_output_validation: true -provider: {linux_aarch64: azure, linux_ppc64le: azure} github: branch_name: main tooling_branch_name: main -conda_build: - pkg_format: '2' - error_overlinking: true +provider: + linux_aarch64: azure + linux_ppc64le: azure test: native_and_emulated diff --git a/recipe/build-pkg.sh b/recipe/build-pkg.sh index 44dccd08..1a4b60d8 100644 --- a/recipe/build-pkg.sh +++ b/recipe/build-pkg.sh @@ -31,9 +31,6 @@ fi if [[ "${target_platform}" == "linux"* ]]; then export LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++" -fi - -if [[ "${target_platform}" == "linux"* ]]; then # This should have been defined by HandleLLVMOptions.cmake # Not sure why it is not. export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS" diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml deleted file mode 100644 index e82dd9d9..00000000 --- a/recipe/conda_build_config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -c_compiler: # [osx] - - clang_bootstrap # [osx] -cxx_compiler: # [osx] - - clang_bootstrap # [osx] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 23662021..6c80de35 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "18.1.8" %} +{% set version = "19.1.0" %} # check https://clang.llvm.org/docs/OpenMPSupport.html # occasionally to see last fully supported openmp ver. {% set openmp_ver = "4.5" %} @@ -9,19 +9,17 @@ package: source: url: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-{{ version.replace(".rc", "-rc") }}.tar.gz - sha256: 09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856 + sha256: 0a08341036ca99a106786f50f9c5cb3fbe458b3b74cab6089fd368d0edb2edfe # name folder for easier deletion; we do the equivalent of downloading # the subproject sources, so the work folder then has openmp in it; # for details see build scripts folder: llvm-project patches: - # backport https://github.com/llvm/llvm-project/pull/80174 - - patches/0001-openmp-On-Windows-fix-standalone-cmake-build.patch - # intermediate fix for https://github.com/llvm/llvm-project/issues/54596 - - patches/0002-link-libomp-to-compiler-rt-on-osx-arm.patch + # fix for https://github.com/llvm/llvm-project/issues/54596 + - patches/0001-link-libomp-to-compiler-rt-on-osx-arm.patch build: - number: 1 + number: 0 outputs: - name: llvm-openmp @@ -29,7 +27,7 @@ outputs: script: build-pkg.bat # [win] build: ignore_run_exports_from: - - {{ compiler('cxx') }} + - {{ compiler("cxx") }} run_exports: strong: - {{ pin_subpackage("llvm-openmp", max_pin=None) }} @@ -37,16 +35,14 @@ outputs: - _openmp_mutex * *_llvm # [linux] requirements: build: - - {{ compiler('cxx') }} - {{ stdlib("c") }} + - {{ compiler("cxx") }} - clang # [win] - cmake - ninja - perl host: - llvmdev {{ version }}|{{ version }}.* - - zlib # [linux] - - zstd # [linux] # see https://github.com/llvm/llvm-project/issues/54596 - compiler-rt # [osx and arm64] run_constrained: diff --git a/recipe/patches/0002-link-libomp-to-compiler-rt-on-osx-arm.patch b/recipe/patches/0001-link-libomp-to-compiler-rt-on-osx-arm.patch similarity index 76% rename from recipe/patches/0002-link-libomp-to-compiler-rt-on-osx-arm.patch rename to recipe/patches/0001-link-libomp-to-compiler-rt-on-osx-arm.patch index 72728505..58fa16e7 100644 --- a/recipe/patches/0002-link-libomp-to-compiler-rt-on-osx-arm.patch +++ b/recipe/patches/0001-link-libomp-to-compiler-rt-on-osx-arm.patch @@ -1,18 +1,18 @@ -From 9fd9c8c26219bf8995321b7786e853d6c51e1dc8 Mon Sep 17 00:00:00 2001 +From 15211abaf2331a43855f09978bda20b030fffd25 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 1 Feb 2024 12:29:07 +0100 -Subject: [PATCH 2/2] link libomp to compiler-rt on osx-arm +Subject: [PATCH] link libomp to compiler-rt on osx-arm --- openmp/runtime/src/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt -index 619d4f7ba458..11d9c969e381 100644 +index f106694841ce..6a016b76f4b6 100644 --- a/openmp/runtime/src/CMakeLists.txt +++ b/openmp/runtime/src/CMakeLists.txt -@@ -161,6 +161,12 @@ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING)) - add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES}) +@@ -175,6 +175,12 @@ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING)) + set_property(TARGET omp PROPERTY FOLDER "OpenMP/Libraries") # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS}) + if(APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") diff --git a/recipe/patches/0001-openmp-On-Windows-fix-standalone-cmake-build.patch b/recipe/patches/0001-openmp-On-Windows-fix-standalone-cmake-build.patch deleted file mode 100644 index 32a13d2e..00000000 --- a/recipe/patches/0001-openmp-On-Windows-fix-standalone-cmake-build.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c553881877d57c30693ede93684851210ea78d30 Mon Sep 17 00:00:00 2001 -From: Alexandre Ganea -Date: Wed, 31 Jan 2024 13:22:19 -0500 -Subject: [PATCH 1/2] [openmp] On Windows, fix standalone cmake build - -This fixes: https://github.com/llvm/llvm-project/issues/80117 ---- - openmp/cmake/HandleOpenMPOptions.cmake | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/openmp/cmake/HandleOpenMPOptions.cmake b/openmp/cmake/HandleOpenMPOptions.cmake -index 201aeabbd3df..71346201129b 100644 ---- a/openmp/cmake/HandleOpenMPOptions.cmake -+++ b/openmp/cmake/HandleOpenMPOptions.cmake -@@ -9,6 +9,14 @@ if (NOT COMMAND append_if) - endfunction() - endif() - -+if (NOT COMMAND append) -+ function(append value) -+ foreach(variable ${ARGN}) -+ set(${variable} "${${variable}} ${value}" PARENT_SCOPE) -+ endforeach(variable) -+ endfunction() -+endif() -+ - # MSVC and clang-cl in compatibility mode map -Wall to -Weverything. - # TODO: LLVM adds /W4 instead, check if that works for the OpenMP runtimes. - if (NOT MSVC)