From fa1d8373f0add683a1d442bf399b847316004a41 Mon Sep 17 00:00:00 2001 From: "conda-forge-curator[bot]" <79913779+conda-forge-curator[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 19:04:40 +0000 Subject: [PATCH 01/55] [ci skip] [skip ci] [cf admin skip] ***NO_CI*** admin migration CondaForgeYAMLTest --- conda-forge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda-forge.yml b/conda-forge.yml index 138badf3..a624268e 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -9,9 +9,9 @@ conda_forge_output_validation: true build_platform: osx_arm64: osx_64 channel_priority: flexible -test_on_native_only: true github: branch_name: main tooling_branch_name: main conda_build: pkg_format: '2' +test: native_and_emulated From 8843e25796e6168b4c04aa89767d59c70b692705 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 14:35:06 +1100 Subject: [PATCH 02/55] remove rc-channel sources & targets --- recipe/conda_build_config.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index da962832..0d031a40 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -3,12 +3,6 @@ c_compiler: # [osx] cxx_compiler: # [osx] - clang_bootstrap # [osx] -channel_targets: - - conda-forge llvm_rc - -channel_sources: - - conda-forge/label/llvm_rc,conda-forge - # libcxx only supports the last released GCC version, see # https://libcxx.llvm.org/index.html#platform-and-compiler-support c_compiler_version: # [linux] From de76323fafc9535b94c1bb72ca6a41f3aa174d6f Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 14:36:16 +1100 Subject: [PATCH 03/55] remove obsolete travis configuration --- conda-forge.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index a624268e..34e138e7 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -3,8 +3,6 @@ bot: - 15.x - 14.x provider: {linux_aarch64: default, linux_ppc64le: default} -travis: - osx_image: xcode6.4 conda_forge_output_validation: true build_platform: osx_arm64: osx_64 From d3f984214d95d4b1ab8c13cd91ce3644882c396d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 14:37:57 +1100 Subject: [PATCH 04/55] alphabetize keys in conda-forge.yml --- conda-forge.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index 34e138e7..4f8f38b0 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -2,14 +2,16 @@ bot: abi_migration_branches: - 15.x - 14.x -provider: {linux_aarch64: default, linux_ppc64le: default} -conda_forge_output_validation: true build_platform: osx_arm64: osx_64 +conda_build: + pkg_format: '2' +conda_forge_output_validation: true channel_priority: flexible github: branch_name: main tooling_branch_name: main -conda_build: - pkg_format: '2' +provider: + linux_aarch64: default + linux_ppc64le: default test: native_and_emulated From aaf669c169e20e449c348ed5d92203e94608e5ee Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 14:38:50 +1100 Subject: [PATCH 05/55] libcxx 17.0.1 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8d045abc..51c621c2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "17.0.0.rc3" %} +{% set version = "17.0.1" %} package: name: libcxx_and_libcxxabi @@ -6,7 +6,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: 60493f4e974fcca7b739aea4901af2d957b0eaea34b42815359be59cf6c88fa2 + sha256: b0e42aafc01ece2ca2b42e3526f54bebc4b1f1dc8de6e34f46a0446a13e882b9 patches: - patches/0001-Support-legacy-standalone-builds.patch # See https://lists.llvm.org/pipermail/libcxx-dev/2021-July/001172.html From 91f0758d82a8479c40d6b03ada4b31ad6fc3a3f5 Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Tue, 3 Oct 2023 11:08:22 +0000 Subject: [PATCH 06/55] updated v17.0.2 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 51c621c2..4e012d7d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "17.0.1" %} +{% set version = "17.0.2" %} package: name: libcxx_and_libcxxabi @@ -6,7 +6,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: b0e42aafc01ece2ca2b42e3526f54bebc4b1f1dc8de6e34f46a0446a13e882b9 + sha256: 351562b14d42fcefcbf00cc1f327680a1062bbbf67a1e1ca6acb64c473b06394 patches: - patches/0001-Support-legacy-standalone-builds.patch # See https://lists.llvm.org/pipermail/libcxx-dev/2021-July/001172.html From 2bf10e95517502959f93c647609c26a24f26bf64 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 7 Mar 2024 06:36:27 +1100 Subject: [PATCH 07/55] libcxx 17.0.6 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 4e012d7d..79b321d2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "17.0.2" %} +{% set version = "17.0.6" %} package: name: libcxx_and_libcxxabi @@ -6,7 +6,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: 351562b14d42fcefcbf00cc1f327680a1062bbbf67a1e1ca6acb64c473b06394 + sha256: 58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813 patches: - patches/0001-Support-legacy-standalone-builds.patch # See https://lists.llvm.org/pipermail/libcxx-dev/2021-July/001172.html From 2db1dfaf75f5de144bc7d77e2cecad90d5d56340 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 21 Apr 2024 12:23:24 +1100 Subject: [PATCH 08/55] do stdlib transformation --- recipe/conda_build_config.yaml | 7 +++++-- recipe/meta.yaml | 9 +++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 0d031a40..21ce79ae 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -10,10 +10,13 @@ c_compiler_version: # [linux] cxx_compiler_version: # [linux] - 12 # [linux] +c_stdlib_version: # [linux or (osx and x86_64)] + # actually would need >=2.24, but we don't have that in conda-forge yet + - "2.17" # [linux] + - "10.13" # [osx and x86_64] + MACOSX_SDK_VERSION: # [osx and x86_64] - "10.14" # [osx and x86_64] -MACOSX_DEPLOYMENT_TARGET: # [osx and x86_64] - - "10.13" # [osx and x86_64] dummy_var: # [osx] - 0 # [osx and x86_64] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 79b321d2..26d3f6f2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -32,9 +32,8 @@ requirements: - cmake - ninja - {{ compiler('cxx') }} + - {{ stdlib('c') }} - python >3 # [not osx] - # actually would need >=2.24, but we don't have that in conda-forge yet - - sysroot_linux-64 2.17 # [linux64] host: - clangdev {{ version }} # [not osx] - llvmdev {{ version }} # [not osx] @@ -53,14 +52,12 @@ outputs: requirements: build: - {{ compiler('cxx') }} - # actually would need >=2.24, but we don't have that in conda-forge yet - - sysroot_linux-64 2.17 # [linux64] + - {{ stdlib('c') }} host: run: - {{ pin_subpackage("libcxxabi", exact=True) }} # [linux] - - __osx >={{ MACOSX_DEPLOYMENT_TARGET }} # [osx and x86_64] run_constrained: - - sysroot_linux-64 >=2.17 # [linux64] + - sysroot_{{ target_platform }} >={{ c_stdlib_version }} # [linux] test: requires: - clang # [osx] From c387396357e172f65bfc32ad82156615fe72df90 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 21 Apr 2024 12:25:29 +1100 Subject: [PATCH 09/55] MNT: Re-rendered with conda-build 24.3.0, conda-smithy 3.34.1, and conda-forge-pinning 2024.04.20.22.12.53 --- .azure-pipelines/azure-pipelines-linux.yml | 4 ++++ .azure-pipelines/azure-pipelines-osx.yml | 4 ++++ .ci_support/linux_64_.yaml | 11 ++++++++-- .ci_support/osx_64_.yaml | 12 ++++++----- .ci_support/osx_arm64_.yaml | 12 ++++++----- .gitignore | 25 ++++++++++++++++++++-- .scripts/build_steps.sh | 16 ++++++++------ .scripts/logging_utils.sh | 4 ++-- .scripts/run_docker_build.sh | 9 ++++++++ .scripts/run_osx_build.sh | 19 ++++++++++------ README.md | 2 +- build-locally.py | 5 +++-- 12 files changed, 91 insertions(+), 32 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index a20f3154..875d9966 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -13,6 +13,7 @@ jobs: UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 + variables: {} steps: # configure qemu binfmt-misc running. This allows us to run docker containers @@ -25,6 +26,9 @@ jobs: - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 8032e967..730a6268 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -15,11 +15,15 @@ jobs: CONFIG: osx_arm64_ UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 + variables: {} steps: # TODO: Fast finish on azure pipelines? - script: | export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) export OSX_FORCE_SDK_DOWNLOAD="1" export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 9fb4d831..72a0ae22 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -1,9 +1,13 @@ +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' cdt_name: - cos6 channel_sources: -- conda-forge/label/llvm_rc,conda-forge +- conda-forge channel_targets: -- conda-forge llvm_rc +- conda-forge main cxx_compiler: - gxx cxx_compiler_version: @@ -12,3 +16,6 @@ docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 target_platform: - linux-64 +zip_keys: +- - c_stdlib_version + - cdt_name diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 9173ecee..1543c6de 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -2,19 +2,21 @@ MACOSX_DEPLOYMENT_TARGET: - '10.13' MACOSX_SDK_VERSION: - '10.14' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' channel_sources: -- conda-forge/label/llvm_rc,conda-forge +- conda-forge channel_targets: -- conda-forge llvm_rc +- conda-forge main cxx_compiler: - clang_bootstrap cxx_compiler_version: -- '15' +- '16' dummy_var: - '0' macos_machine: - x86_64-apple-darwin13.4.0 -openturns: -- '1.20' target_platform: - osx-64 diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index e39e0b64..df1191e5 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -1,18 +1,20 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' channel_sources: -- conda-forge/label/llvm_rc,conda-forge +- conda-forge channel_targets: -- conda-forge llvm_rc +- conda-forge main cxx_compiler: - clang_bootstrap cxx_compiler_version: -- '15' +- '16' dummy_var: - '1' macos_machine: - arm64-apple-darwin20.0.0 -openturns: -- '1.20' target_platform: - osx-arm64 diff --git a/.gitignore b/.gitignore index c89ecb7d..179afe55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,24 @@ -*.pyc +# User content belongs under recipe/. +# Feedstock configuration goes in `conda-forge.yml` +# Everything else is managed by the conda-smithy rerender process. +# Please do not modify + +# Ignore all files and folders in root +* +!/conda-forge.yml + +# Don't ignore any files/folders if the parent folder is 'un-ignored' +# This also avoids warnings when adding an already-checked file with an ignored parent. +!/**/ +# Don't ignore any files/folders recursively in the following folders +!/recipe/** +!/.ci_support/** -build_artifacts +# Since we ignore files/folders recursively, any folders inside +# build_artifacts gets ignored which trips some build systems. +# To avoid that we 'un-ignore' all files/folders recursively +# and only ignore the root build_artifacts folder. +!/build_artifacts/** +/build_artifacts + +*.pyc diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index a6b09f6b..899ba03c 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -28,14 +28,15 @@ conda-build: pkgs_dirs: - ${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache - /opt/conda/pkgs +solver: libmamba CONDARC +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - -mamba install --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 +mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ + 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 conda-forge-ci-setup=4 "conda-build>=24.1" # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -67,9 +68,10 @@ 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" + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ + --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh index 57bc95c2..aff009f0 100644 --- a/.scripts/logging_utils.sh +++ b/.scripts/logging_utils.sh @@ -12,7 +12,7 @@ function startgroup { echo "##[group]$1";; travis ) echo "$1" - echo -en 'travis_fold:start:'"${1// /}"'\\r';; + echo -en 'travis_fold:start:'"${1// /}"'\r';; github_actions ) echo "::group::$1";; * ) @@ -28,7 +28,7 @@ function endgroup { azure ) echo "##[endgroup]";; travis ) - echo -en 'travis_fold:end:'"${1// /}"'\\r';; + echo -en 'travis_fold:end:'"${1// /}"'\r';; github_actions ) echo "::endgroup::";; esac diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 92362398..00f377a8 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -21,6 +21,12 @@ if [ -z ${FEEDSTOCK_NAME} ]; then export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) fi +if [[ "${sha:-}" == "" ]]; then + pushd "${FEEDSTOCK_ROOT}" + sha=$(git rev-parse HEAD) + popd +fi + docker info # In order for the conda-build process in the container to write to the mounted @@ -91,6 +97,9 @@ docker run ${DOCKER_RUN_ARGS} \ -e CPU_COUNT \ -e BUILD_WITH_CONDA_DEBUG \ -e BUILD_OUTPUT_ID \ + -e flow_run_id \ + -e remote_url \ + -e sha \ -e BINSTAR_TOKEN \ -e FEEDSTOCK_TOKEN \ -e STAGING_BINSTAR_TOKEN \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 3969edf3..07dff219 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -22,11 +22,13 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -mamba install --update-specs --quiet --yes --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 +mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \ + 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 conda-forge-ci-setup=4 "conda-build>=24.1" @@ -45,6 +47,10 @@ else echo -e "\n\nNot mangling homebrew as we are not running in CI" fi +if [[ "${sha:-}" == "" ]]; then + sha=$(git rev-parse HEAD) +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup @@ -75,9 +81,10 @@ 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 + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ + --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/README.md b/README.md index 4e0b39ec..abccf9d0 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ available continuous integration services. Thanks to the awesome service provide [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable packages to the -[conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/) +[conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) channel for Linux, Windows and OSX respectively. To manage the continuous integration and simplify feedstock maintenance 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 35b0baf6390c8dfcb01a3a5b11f2a2d367cee852 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 21 Apr 2024 12:26:13 +1100 Subject: [PATCH 10/55] add testing against clang 17 & 18 --- recipe/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 26d3f6f2..c2359057 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -94,6 +94,8 @@ outputs: - openturns # [osx] # test current libcxx against old clang builds; # version correspondence is 0.{{ CLANG_MAJOR }} + - libcxx-testing 0.18 # [osx] + - libcxx-testing 0.17 # [osx] - libcxx-testing 0.16 # [osx] - libcxx-testing 0.15 # [osx] - libcxx-testing 0.14 # [osx] From 98bf29b4a106b2f5ba0fed5478be95a8b17263ca Mon Sep 17 00:00:00 2001 From: "conda-forge-curator[bot]" <79913779+conda-forge-curator[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 17:40:29 +0000 Subject: [PATCH 11/55] [ci skip] [skip ci] [cf admin skip] ***NO_CI*** admin migration CondaForgeAutomergeUpdate --- .github/workflows/automerge.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index da1368a1..0535f6aa 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -9,8 +9,6 @@ jobs: runs-on: ubuntu-latest name: automerge steps: - - name: checkout - uses: actions/checkout@v3 - name: automerge-action id: automerge-action uses: conda-forge/automerge-action@main From 34c924be7c091182dbf2d5c3e378c4f25b5a370e Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 12 Jun 2024 15:14:45 +1100 Subject: [PATCH 12/55] [ci skip] update abi_migration_branches --- conda-forge.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index 4f8f38b0..3442a946 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,7 +1,6 @@ bot: abi_migration_branches: - - 15.x - - 14.x + - 16.x build_platform: osx_arm64: osx_64 conda_build: From e5692eadfccd9e80269739686a542848f3fb6362 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 15:59:36 +1100 Subject: [PATCH 13/55] resort cbc --- recipe/conda_build_config.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 21ce79ae..e450e320 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -10,14 +10,15 @@ c_compiler_version: # [linux] cxx_compiler_version: # [linux] - 12 # [linux] +# we want different hashes between osx-64 & osx-arm +dummy_var: # [osx] + - 0 # [osx and x86_64] + - 1 # [osx and arm64] + +MACOSX_SDK_VERSION: # [osx and x86_64] + - "10.14" # [osx and x86_64] + c_stdlib_version: # [linux or (osx and x86_64)] # actually would need >=2.24, but we don't have that in conda-forge yet - "2.17" # [linux] - "10.13" # [osx and x86_64] - -MACOSX_SDK_VERSION: # [osx and x86_64] - - "10.14" # [osx and x86_64] - -dummy_var: # [osx] - - 0 # [osx and x86_64] - - 1 # [osx and arm64] From 9bb215d401bfb1ee19d4738e30b2c9d83e23bb22 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 16:11:01 +1100 Subject: [PATCH 14/55] build for two different ABIs on osx (before/after macOS 12.0) --- recipe/conda_build_config.yaml | 30 +++++++++++++++++++++++++++--- recipe/meta.yaml | 9 +++++++-- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index e450e320..4134ed67 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -15,10 +15,34 @@ dummy_var: # [osx] - 0 # [osx and x86_64] - 1 # [osx and arm64] -MACOSX_SDK_VERSION: # [osx and x86_64] - - "10.14" # [osx and x86_64] +MACOSX_SDK_VERSION: # [osx] + - "10.14" # [osx and x86_64] + - "11.0" # [osx and arm64] + # 12.0 is not available in conda-forge-ci-setup + - "12.3" # [osx] -c_stdlib_version: # [linux or (osx and x86_64)] +c_stdlib_version: # [linux or osx] # actually would need >=2.24, but we don't have that in conda-forge yet - "2.17" # [linux] - "10.13" # [osx and x86_64] + - "11.0" # [osx and arm64] + - "12.0" # [osx] + +# required to properly populate variant configs due to smithy's merge logic for stdlib +MACOSX_DEPLOYMENT_TARGET: # [osx] + - "10.13" # [osx and x86_64] + - "11.0" # [osx and arm64] + - "12.0" # [osx] + +# in some scenarios, libraries will load a cached _system_ libc++, and if we have an +# ABI-mismatch with that system lib, segfaults ensue (see libcxx-testing-feedstock); +# because the ABI changed with macOS 12, we build a version each for before & after +sys_abi: # [osx] + - pre-12 # [osx] + - post-12 # [osx] + +zip_keys: # [osx] + - - c_stdlib_version # [osx] + - MACOSX_SDK_VERSION # [osx] + - MACOSX_DEPLOYMENT_TARGET # [osx] + - sys_abi # [osx] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c2359057..86e8cb65 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -10,7 +10,7 @@ source: patches: - patches/0001-Support-legacy-standalone-builds.patch # See https://lists.llvm.org/pipermail/libcxx-dev/2021-July/001172.html - - patches/0002-Fix-ABI-compatibility-with-system.patch + - patches/0002-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] - patches/0003-custom-error-message-for-old-sdk.patch # upstream removed fallbacks in case the underlying libc didn't support C11 in # https://github.com/llvm/llvm-project/commit/21f73d5826fb5024a27eaacafadfa316f58949c5; @@ -32,7 +32,10 @@ requirements: - cmake - ninja - {{ compiler('cxx') }} - - {{ stdlib('c') }} + - {{ stdlib('c') }} # [not osx] + # use sys_abi as selector, so smithy breaks up CI jobs + - {{ stdlib('c') }} # [osx and (sys_abi == "pre-12")] + - {{ stdlib('c') }} # [osx and (sys_abi == "post-12")] - python >3 # [not osx] host: - clangdev {{ version }} # [not osx] @@ -57,6 +60,7 @@ outputs: run: - {{ pin_subpackage("libcxxabi", exact=True) }} # [linux] run_constrained: + - __osx <12 # [osx and (sys_abi == "pre-12")] - sysroot_{{ target_platform }} >={{ c_stdlib_version }} # [linux] test: requires: @@ -73,6 +77,7 @@ outputs: commands: # Dummy var for different hashes - echo {{ dummy_var }} # [osx] + - echo {{ sys_abi }} # [osx] - if not exist %LIBRARY_INC%\\c++\\v1\\iterator exit 1 # [win] - test -f $PREFIX/include/c++/v1/iterator # [unix] - bash compile_test.sh # [unix] From 38db1a3411293d98bfa3901487925680f68fc49a Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 16:26:27 +1100 Subject: [PATCH 15/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.06.20.05.09.33 --- .azure-pipelines/azure-pipelines-osx.yml | 16 ++++++---- ...4_c_stdlib_version10.13sys_abipre-12.yaml} | 7 +++++ ...64_c_stdlib_version12.0sys_abipost-12.yaml | 29 +++++++++++++++++++ ...64_c_stdlib_version11.0sys_abipre-12.yaml} | 9 ++++++ ...64_c_stdlib_version12.0sys_abipost-12.yaml | 29 +++++++++++++++++++ .gitattributes | 4 +-- .scripts/build_steps.sh | 7 +++++ .scripts/run_osx_build.sh | 7 +++++ README.md | 22 +++++++++++--- 9 files changed, 119 insertions(+), 11 deletions(-) rename .ci_support/{osx_64_.yaml => osx_64_c_stdlib_version10.13sys_abipre-12.yaml} (75%) create mode 100644 .ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml rename .ci_support/{osx_arm64_.yaml => osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml} (68%) create mode 100644 .ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 730a6268..c3a53b1b 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,14 +5,20 @@ jobs: - job: osx pool: - vmImage: macOS-11 + vmImage: macOS-12 strategy: matrix: - osx_64_: - CONFIG: osx_64_ + osx_64_c_stdlib_version10.13sys_abipre-12: + CONFIG: osx_64_c_stdlib_version10.13sys_abipre-12 UPLOAD_PACKAGES: 'True' - osx_arm64_: - CONFIG: osx_arm64_ + osx_64_c_stdlib_version12.0sys_abipost-12: + CONFIG: osx_64_c_stdlib_version12.0sys_abipost-12 + UPLOAD_PACKAGES: 'True' + osx_arm64_c_stdlib_version11.0sys_abipre-12: + CONFIG: osx_arm64_c_stdlib_version11.0sys_abipre-12 + UPLOAD_PACKAGES: 'True' + osx_arm64_c_stdlib_version12.0sys_abipost-12: + CONFIG: osx_arm64_c_stdlib_version12.0sys_abipost-12 UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: {} diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_c_stdlib_version10.13sys_abipre-12.yaml similarity index 75% rename from .ci_support/osx_64_.yaml rename to .ci_support/osx_64_c_stdlib_version10.13sys_abipre-12.yaml index 1543c6de..c1def7d3 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_c_stdlib_version10.13sys_abipre-12.yaml @@ -18,5 +18,12 @@ dummy_var: - '0' macos_machine: - x86_64-apple-darwin13.4.0 +sys_abi: +- pre-12 target_platform: - osx-64 +zip_keys: +- - c_stdlib_version + - MACOSX_SDK_VERSION + - MACOSX_DEPLOYMENT_TARGET + - sys_abi diff --git a/.ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml b/.ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml new file mode 100644 index 00000000..34ab50d1 --- /dev/null +++ b/.ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml @@ -0,0 +1,29 @@ +MACOSX_DEPLOYMENT_TARGET: +- '12.0' +MACOSX_SDK_VERSION: +- '12.3' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '12.0' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clang_bootstrap +cxx_compiler_version: +- '16' +dummy_var: +- '0' +macos_machine: +- x86_64-apple-darwin13.4.0 +sys_abi: +- post-12 +target_platform: +- osx-64 +zip_keys: +- - c_stdlib_version + - MACOSX_SDK_VERSION + - MACOSX_DEPLOYMENT_TARGET + - sys_abi diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml similarity index 68% rename from .ci_support/osx_arm64_.yaml rename to .ci_support/osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml index df1191e5..de4cf823 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml @@ -1,5 +1,7 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' +MACOSX_SDK_VERSION: +- '11.0' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -16,5 +18,12 @@ dummy_var: - '1' macos_machine: - arm64-apple-darwin20.0.0 +sys_abi: +- pre-12 target_platform: - osx-arm64 +zip_keys: +- - c_stdlib_version + - MACOSX_SDK_VERSION + - MACOSX_DEPLOYMENT_TARGET + - sys_abi diff --git a/.ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml b/.ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml new file mode 100644 index 00000000..98bc6797 --- /dev/null +++ b/.ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml @@ -0,0 +1,29 @@ +MACOSX_DEPLOYMENT_TARGET: +- '12.0' +MACOSX_SDK_VERSION: +- '12.3' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '12.0' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clang_bootstrap +cxx_compiler_version: +- '16' +dummy_var: +- '1' +macos_machine: +- arm64-apple-darwin20.0.0 +sys_abi: +- post-12 +target_platform: +- osx-arm64 +zip_keys: +- - c_stdlib_version + - MACOSX_SDK_VERSION + - MACOSX_DEPLOYMENT_TARGET + - sys_abi diff --git a/.gitattributes b/.gitattributes index 7f327638..18f114a1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,8 +20,8 @@ bld.bat text eol=crlf .travis.yml linguist-generated=true .scripts/* linguist-generated=true .woodpecker.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +/LICENSE.txt linguist-generated=true +/README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 899ba03c..a5836e8d 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -72,6 +72,13 @@ 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 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 07dff219..ba0c8791 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -85,6 +85,13 @@ 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 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/README.md b/README.md index abccf9d0..7ccfbc05 100644 --- a/README.md +++ b/README.md @@ -36,17 +36,31 @@ Current build status - osx_64 + osx_64_c_stdlib_version10.13sys_abipre-12 - variant + variant - osx_arm64 + osx_64_c_stdlib_version12.0sys_abipost-12 - variant + variant + + + + osx_arm64_c_stdlib_version11.0sys_abipre-12 + + + variant + + + + osx_arm64_c_stdlib_version12.0sys_abipost-12 + + + variant From 4ebcd168b142d9b384a7951cad3589bea61bad13 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 16:36:45 +1100 Subject: [PATCH 16/55] manual override: use old macOS image for pre-12 system ABI --- .azure-pipelines/azure-pipelines-osx.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index c3a53b1b..8c33ff14 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -4,22 +4,26 @@ jobs: - job: osx - pool: - vmImage: macOS-12 strategy: matrix: osx_64_c_stdlib_version10.13sys_abipre-12: CONFIG: osx_64_c_stdlib_version10.13sys_abipre-12 UPLOAD_PACKAGES: 'True' + imageName: 'macOS-11' osx_64_c_stdlib_version12.0sys_abipost-12: CONFIG: osx_64_c_stdlib_version12.0sys_abipost-12 UPLOAD_PACKAGES: 'True' + imageName: 'macOS-12' osx_arm64_c_stdlib_version11.0sys_abipre-12: CONFIG: osx_arm64_c_stdlib_version11.0sys_abipre-12 UPLOAD_PACKAGES: 'True' + imageName: 'macOS-11' osx_arm64_c_stdlib_version12.0sys_abipost-12: CONFIG: osx_arm64_c_stdlib_version12.0sys_abipost-12 UPLOAD_PACKAGES: 'True' + imageName: 'macOS-12' + pool: + vmImage: $(imageName) timeoutInMinutes: 360 variables: {} From f3d578d1a1ce47ef001207ef73e534a85128b6a0 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 17:10:13 +1100 Subject: [PATCH 17/55] bump build number --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 86e8cb65..61eda01b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -19,7 +19,7 @@ source: - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch build: - number: 0 + number: 1 skip: true # [win] skip: true # [ppc64le or aarch64] ignore_run_exports: From 1cf8aae48bb50897eac9636cb1058cb47a766306 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 13:03:07 +1100 Subject: [PATCH 18/55] update reference for ABI patch --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 61eda01b..fb724b86 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813 patches: - patches/0001-Support-legacy-standalone-builds.patch - # See https://lists.llvm.org/pipermail/libcxx-dev/2021-July/001172.html + # See https://discourse.llvm.org/t/shipping-custom-libc-on-macos/58606 - patches/0002-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] - patches/0003-custom-error-message-for-old-sdk.patch # upstream removed fallbacks in case the underlying libc didn't support C11 in From 97f8524373cff808e62efca8b62cd47fde76aead Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 12:16:57 +1100 Subject: [PATCH 19/55] publish pre-12 sys_abi builds to separate label --- recipe/conda_build_config.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 4134ed67..e4afb2a7 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -41,8 +41,14 @@ sys_abi: # [osx] - pre-12 # [osx] - post-12 # [osx] +# publish the pre-12 ABI builds to a separate label +channel_targets: # [osx] + - conda-forge libcxx_macos_lt_12 # [osx] + - conda-forge main # [osx] + zip_keys: # [osx] - - c_stdlib_version # [osx] - MACOSX_SDK_VERSION # [osx] - MACOSX_DEPLOYMENT_TARGET # [osx] - sys_abi # [osx] + - channel_targets # [osx] From 8e1081468b47e3fb3363c4f7469d2edc344d822c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 12:20:27 +1100 Subject: [PATCH 20/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.06.21.08.07.40 (+ manual fix-up to keep using macOS-11 images where necessary) --- .azure-pipelines/azure-pipelines-osx.yml | 16 ++++++++-------- ...a-forge_libcxx_macos_lt_12sys_abipre-12.yaml} | 3 ++- ...l_targetsconda-forge_mainsys_abipost-12.yaml} | 1 + ...a-forge_libcxx_macos_lt_12sys_abipre-12.yaml} | 3 ++- ...l_targetsconda-forge_mainsys_abipost-12.yaml} | 1 + README.md | 16 ++++++++-------- 6 files changed, 22 insertions(+), 18 deletions(-) rename .ci_support/{osx_64_c_stdlib_version10.13sys_abipre-12.yaml => osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml} (89%) rename .ci_support/{osx_64_c_stdlib_version12.0sys_abipost-12.yaml => osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml} (95%) rename .ci_support/{osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml => osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml} (89%) rename .ci_support/{osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml => osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml} (95%) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 8c33ff14..fa3121a5 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -6,20 +6,20 @@ jobs: - job: osx strategy: matrix: - osx_64_c_stdlib_version10.13sys_abipre-12: - CONFIG: osx_64_c_stdlib_version10.13sys_abipre-12 + osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12: + CONFIG: osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 UPLOAD_PACKAGES: 'True' imageName: 'macOS-11' - osx_64_c_stdlib_version12.0sys_abipost-12: - CONFIG: osx_64_c_stdlib_version12.0sys_abipost-12 + osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12: + CONFIG: osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 UPLOAD_PACKAGES: 'True' imageName: 'macOS-12' - osx_arm64_c_stdlib_version11.0sys_abipre-12: - CONFIG: osx_arm64_c_stdlib_version11.0sys_abipre-12 + osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12: + CONFIG: osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 UPLOAD_PACKAGES: 'True' imageName: 'macOS-11' - osx_arm64_c_stdlib_version12.0sys_abipost-12: - CONFIG: osx_arm64_c_stdlib_version12.0sys_abipost-12 + osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12: + CONFIG: osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 UPLOAD_PACKAGES: 'True' imageName: 'macOS-12' pool: diff --git a/.ci_support/osx_64_c_stdlib_version10.13sys_abipre-12.yaml b/.ci_support/osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml similarity index 89% rename from .ci_support/osx_64_c_stdlib_version10.13sys_abipre-12.yaml rename to .ci_support/osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index c1def7d3..843483cb 100644 --- a/.ci_support/osx_64_c_stdlib_version10.13sys_abipre-12.yaml +++ b/.ci_support/osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -9,7 +9,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge main +- conda-forge libcxx_macos_lt_12 cxx_compiler: - clang_bootstrap cxx_compiler_version: @@ -27,3 +27,4 @@ zip_keys: - MACOSX_SDK_VERSION - MACOSX_DEPLOYMENT_TARGET - sys_abi + - channel_targets diff --git a/.ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml b/.ci_support/osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml similarity index 95% rename from .ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml rename to .ci_support/osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml index 34ab50d1..b8b9173d 100644 --- a/.ci_support/osx_64_c_stdlib_version12.0sys_abipost-12.yaml +++ b/.ci_support/osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -27,3 +27,4 @@ zip_keys: - MACOSX_SDK_VERSION - MACOSX_DEPLOYMENT_TARGET - sys_abi + - channel_targets diff --git a/.ci_support/osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml b/.ci_support/osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml similarity index 89% rename from .ci_support/osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml rename to .ci_support/osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index de4cf823..26bec688 100644 --- a/.ci_support/osx_arm64_c_stdlib_version11.0sys_abipre-12.yaml +++ b/.ci_support/osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -9,7 +9,7 @@ c_stdlib_version: channel_sources: - conda-forge channel_targets: -- conda-forge main +- conda-forge libcxx_macos_lt_12 cxx_compiler: - clang_bootstrap cxx_compiler_version: @@ -27,3 +27,4 @@ zip_keys: - MACOSX_SDK_VERSION - MACOSX_DEPLOYMENT_TARGET - sys_abi + - channel_targets diff --git a/.ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml b/.ci_support/osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml similarity index 95% rename from .ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml rename to .ci_support/osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml index 98bc6797..e294892b 100644 --- a/.ci_support/osx_arm64_c_stdlib_version12.0sys_abipost-12.yaml +++ b/.ci_support/osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -27,3 +27,4 @@ zip_keys: - MACOSX_SDK_VERSION - MACOSX_DEPLOYMENT_TARGET - sys_abi + - channel_targets diff --git a/README.md b/README.md index 7ccfbc05..d02b5ed3 100644 --- a/README.md +++ b/README.md @@ -36,31 +36,31 @@ Current build status - osx_64_c_stdlib_version10.13sys_abipre-12 + osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 - variant + variant - osx_64_c_stdlib_version12.0sys_abipost-12 + osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 - variant + variant - osx_arm64_c_stdlib_version11.0sys_abipre-12 + osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 - variant + variant - osx_arm64_c_stdlib_version12.0sys_abipost-12 + osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 - variant + variant From 360f04c1e17df77608815a45b9842521109c5b5e Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 29 Jun 2024 17:19:59 +1100 Subject: [PATCH 21/55] lower deployment target even for sys_abi=post-12 --- recipe/conda_build_config.yaml | 5 ++++- recipe/meta.yaml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index e4afb2a7..b1501171 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -26,7 +26,10 @@ c_stdlib_version: # [linux or osx] - "2.17" # [linux] - "10.13" # [osx and x86_64] - "11.0" # [osx and arm64] - - "12.0" # [osx] + # w.r.t. to the ABI of the system libcxx, this would need to be 12.0, + # but as we only publish one build to main, maintain global lower bounds + - "10.13" # [osx and x86_64] + - "11.0" # [osx and arm64] # required to properly populate variant configs due to smithy's merge logic for stdlib MACOSX_DEPLOYMENT_TARGET: # [osx] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index fb724b86..2906e185 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -19,7 +19,7 @@ source: - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch build: - number: 1 + number: 2 skip: true # [win] skip: true # [ppc64le or aarch64] ignore_run_exports: From c73230b659e6e068d06735d73ef51174cf9db8dd Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 29 Jun 2024 17:22:40 +1100 Subject: [PATCH 22/55] skip libcxx downstream tests on pre-12 sys_abi due to deleted image --- recipe/meta.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 2906e185..16374aeb 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -99,6 +99,9 @@ outputs: - openturns # [osx] # test current libcxx against old clang builds; # version correspondence is 0.{{ CLANG_MAJOR }} + {% if osx and sys_abi == "post-12" %} + # these tests are unusual in that they use -Wl,-rpath, but not -L. + # we'd need the pre-12 system libcxx, but azure deleted the macOS-11 image - libcxx-testing 0.18 # [osx] - libcxx-testing 0.17 # [osx] - libcxx-testing 0.16 # [osx] @@ -107,6 +110,7 @@ outputs: - libcxx-testing 0.13 # [osx] - libcxx-testing 0.12 # [osx] - libcxx-testing 0.11 # [osx] + {% endif %} - name: libcxxabi build: From d685499f4e5e1a002422432ce224dc75505f19e0 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 29 Jun 2024 17:24:47 +1100 Subject: [PATCH 23/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.06.29.04.41.23 --- .azure-pipelines/azure-pipelines-osx.yml | 24 ++++++++----------- ...orge_libcxx_macos_lt_12sys_abipre-12.yaml} | 0 ...argetsconda-forge_mainsys_abipost-12.yaml} | 0 ...orge_libcxx_macos_lt_12sys_abipre-12.yaml} | 0 ...argetsconda-forge_mainsys_abipost-12.yaml} | 0 README.md | 16 ++++++------- 6 files changed, 18 insertions(+), 22 deletions(-) rename .ci_support/{osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml => osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml} (100%) rename .ci_support/{osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml => osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml} (100%) rename .ci_support/{osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml => osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml} (100%) rename .ci_support/{osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml => osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml} (100%) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index fa3121a5..d3221d58 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -4,26 +4,22 @@ jobs: - job: osx + pool: + vmImage: macOS-12 strategy: matrix: - osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12: - CONFIG: osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 + osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12: + CONFIG: osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 UPLOAD_PACKAGES: 'True' - imageName: 'macOS-11' - osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12: - CONFIG: osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 + osx_64_channel_targetsconda-forge_mainsys_abipost-12: + CONFIG: osx_64_channel_targetsconda-forge_mainsys_abipost-12 UPLOAD_PACKAGES: 'True' - imageName: 'macOS-12' - osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12: - CONFIG: osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 + osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12: + CONFIG: osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 UPLOAD_PACKAGES: 'True' - imageName: 'macOS-11' - osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12: - CONFIG: osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 + osx_arm64_channel_targetsconda-forge_mainsys_abipost-12: + CONFIG: osx_arm64_channel_targetsconda-forge_mainsys_abipost-12 UPLOAD_PACKAGES: 'True' - imageName: 'macOS-12' - pool: - vmImage: $(imageName) timeoutInMinutes: 360 variables: {} diff --git a/.ci_support/osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml similarity index 100% rename from .ci_support/osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml rename to .ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml diff --git a/.ci_support/osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml similarity index 100% rename from .ci_support/osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml rename to .ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml diff --git a/.ci_support/osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml similarity index 100% rename from .ci_support/osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml rename to .ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml diff --git a/.ci_support/osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml similarity index 100% rename from .ci_support/osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12.yaml rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml diff --git a/README.md b/README.md index d02b5ed3..2dde2db5 100644 --- a/README.md +++ b/README.md @@ -36,31 +36,31 @@ Current build status - osx_64_c_stdlib_version10.13channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 + osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 - variant + variant - osx_64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 + osx_64_channel_targetsconda-forge_mainsys_abipost-12 - variant + variant - osx_arm64_c_stdlib_version11.0channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 + osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12 - variant + variant - osx_arm64_c_stdlib_version12.0channel_targetsconda-forge_mainsys_abipost-12 + osx_arm64_channel_targetsconda-forge_mainsys_abipost-12 - variant + variant From 106153d7336845166134a88cd35f7f3fb2b31b05 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 29 Jun 2024 17:47:09 +1100 Subject: [PATCH 24/55] expand skip for old sys_abi to entire test section --- recipe/meta.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 16374aeb..9f441582 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,9 @@ {% set version = "17.0.6" %} +{% if sys_abi is undefined %} +{% set sys_abi = "dummy" %} +{% endif %} + package: name: libcxx_and_libcxxabi version: {{ version }} @@ -62,6 +66,9 @@ outputs: run_constrained: - __osx <12 # [osx and (sys_abi == "pre-12")] - sysroot_{{ target_platform }} >={{ c_stdlib_version }} # [linux] + + # package for old sys_abi is not installable on macOS-12 image anymore + {% if sys_abi != "pre-12" %} test: requires: - clang # [osx] @@ -99,7 +106,6 @@ outputs: - openturns # [osx] # test current libcxx against old clang builds; # version correspondence is 0.{{ CLANG_MAJOR }} - {% if osx and sys_abi == "post-12" %} # these tests are unusual in that they use -Wl,-rpath, but not -L. # we'd need the pre-12 system libcxx, but azure deleted the macOS-11 image - libcxx-testing 0.18 # [osx] @@ -110,7 +116,7 @@ outputs: - libcxx-testing 0.13 # [osx] - libcxx-testing 0.12 # [osx] - libcxx-testing 0.11 # [osx] - {% endif %} + {% endif %} - name: libcxxabi build: From ab9956b132b41c0216f240c275b6f559382bd8af Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 20:41:41 +1100 Subject: [PATCH 25/55] switch to github-generated sources the lag between tag creation and when the tarballs are uploaded makes our bots think the file isn't there (after having tried in vain a few times) --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 9f441582..2d59e4a9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -9,7 +9,7 @@ package: version: {{ version }} source: - - url: https://github.com/llvm/llvm-project/releases/download/llvmorg-{{ version.replace(".rc", "-rc") }}/llvm-project-{{ version.replace(".rc", "rc") }}.src.tar.xz + - url: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-{{ version.replace(".rc", "-rc") }}.tar.gz sha256: 58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813 patches: - patches/0001-Support-legacy-standalone-builds.patch From f03c8d47033f395ef6511971676aa51c8e96c703 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 20 Jun 2024 20:42:35 +1100 Subject: [PATCH 26/55] libcxx v18.1.8 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 2d59e4a9..8ab82b25 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "17.0.6" %} +{% set version = "18.1.8" %} {% if sys_abi is undefined %} {% set sys_abi = "dummy" %} @@ -10,7 +10,7 @@ package: source: - url: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-{{ version.replace(".rc", "-rc") }}.tar.gz - sha256: 58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813 + sha256: 09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856 patches: - patches/0001-Support-legacy-standalone-builds.patch # See https://discourse.llvm.org/t/shipping-custom-libc-on-macos/58606 @@ -23,7 +23,7 @@ source: - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch build: - number: 2 + number: 0 skip: true # [win] skip: true # [ppc64le or aarch64] ignore_run_exports: From a89582a18924ee3aaa663e90b76264ed7480876d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 7 May 2024 06:51:28 +1100 Subject: [PATCH 27/55] rebase patches --- ...001-Support-legacy-standalone-builds.patch | 6 +- ...02-Fix-ABI-compatibility-with-system.patch | 58 ++++++++--------- ...003-custom-error-message-for-old-sdk.patch | 64 ++++++++++--------- ...ve-workaround-for-C11-features-on-co.patch | 14 ++-- 4 files changed, 72 insertions(+), 70 deletions(-) diff --git a/recipe/patches/0001-Support-legacy-standalone-builds.patch b/recipe/patches/0001-Support-legacy-standalone-builds.patch index eaa6e0e3..94e8eb2f 100644 --- a/recipe/patches/0001-Support-legacy-standalone-builds.patch +++ b/recipe/patches/0001-Support-legacy-standalone-builds.patch @@ -1,4 +1,4 @@ -From d29ac5318e8e94e0365f6f93547d1b6e97ac48e4 Mon Sep 17 00:00:00 2001 +From bf0dac8954fed53dcc579ccf564dd011e11616b2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 18 May 2021 19:51:28 -0500 Subject: [PATCH 1/4] Support legacy standalone builds @@ -8,10 +8,10 @@ Subject: [PATCH 1/4] Support legacy standalone builds 1 file changed, 17 insertions(+) diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt -index 35b466527096..720a4b65b83c 100644 +index 1b80625304a4..b1d581eb5de4 100644 --- a/libcxx/src/CMakeLists.txt +++ b/libcxx/src/CMakeLists.txt -@@ -235,6 +235,23 @@ if (LIBCXX_ENABLE_SHARED) +@@ -244,6 +244,23 @@ if (LIBCXX_ENABLE_SHARED) "-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp") target_link_libraries(cxx_shared PRIVATE $) diff --git a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch index 033290c1..68330470 100644 --- a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch @@ -1,4 +1,4 @@ -From 123217eff2d5ceec3a0d7578d2c1256be6dc1943 Mon Sep 17 00:00:00 2001 +From b1113a136e91b0788e2fa28e578142e45016eae9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 Subject: [PATCH 2/4] Fix ABI compatibility with system @@ -8,50 +8,50 @@ Subject: [PATCH 2/4] Fix ABI compatibility with system 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp -index bd70a27be4ef..a2062e5d3f53 100644 +index 73b24dbf595a..6a69d6fa2855 100644 --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp -@@ -193,10 +193,6 @@ _LIBCPP_SUPPRESS_DEPRECATED_PUSH - install(&make >(1u)); - install(&make >(1u)); - _LIBCPP_SUPPRESS_DEPRECATED_POP +@@ -176,10 +176,6 @@ locale::__imp::__imp(size_t refs) : facet(refs), facets_(N), name_("C") { + install(&make >(1u)); + install(&make >(1u)); + _LIBCPP_SUPPRESS_DEPRECATED_POP -#ifndef _LIBCPP_HAS_NO_CHAR8_T -- install(&make >(1u)); -- install(&make >(1u)); +- install(&make >(1u)); +- install(&make >(1u)); -#endif - install(&make >(1u)); + install(&make >(1u)); #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS - install(&make >(1u)); -@@ -235,6 +231,10 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP + install(&make >(1u)); +@@ -218,6 +214,10 @@ locale::__imp::__imp(size_t refs) : facet(refs), facets_(N), name_("C") { #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS - install(&make<_VSTD::messages >(1u)); + install(&make >(1u)); #endif +#ifndef _LIBCPP_HAS_NO_CHAR8_T -+ install(&make >(1u)); -+ install(&make >(1u)); ++ install(&make >(1u)); ++ install(&make >(1u)); +#endif } - locale::__imp::__imp(const string& name, size_t refs) -@@ -266,10 +266,6 @@ _LIBCPP_SUPPRESS_DEPRECATED_PUSH - install(new codecvt_byname(name_)); - install(new codecvt_byname(name_)); - _LIBCPP_SUPPRESS_DEPRECATED_POP + locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), name_(name) { +@@ -244,10 +244,6 @@ locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), + install(new codecvt_byname(name_)); + install(new codecvt_byname(name_)); + _LIBCPP_SUPPRESS_DEPRECATED_POP -#ifndef _LIBCPP_HAS_NO_CHAR8_T -- install(new codecvt_byname(name_)); -- install(new codecvt_byname(name_)); +- install(new codecvt_byname(name_)); +- install(new codecvt_byname(name_)); -#endif - install(new numpunct_byname(name_)); + install(new numpunct_byname(name_)); #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS - install(new numpunct_byname(name_)); -@@ -292,6 +288,10 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP + install(new numpunct_byname(name_)); +@@ -270,6 +266,10 @@ locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS - install(new messages_byname(name_)); + install(new messages_byname(name_)); #endif +#ifndef _LIBCPP_HAS_NO_CHAR8_T -+ install(new codecvt_byname(name_)); -+ install(new codecvt_byname(name_)); ++ install(new codecvt_byname(name_)); ++ install(new codecvt_byname(name_)); +#endif #ifndef _LIBCPP_HAS_NO_EXCEPTIONS - } - catch (...) + } catch (...) { + for (unsigned i = 0; i < facets_.size(); ++i) diff --git a/recipe/patches/0003-custom-error-message-for-old-sdk.patch b/recipe/patches/0003-custom-error-message-for-old-sdk.patch index b3dd9c60..ac08bd8f 100644 --- a/recipe/patches/0003-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0003-custom-error-message-for-old-sdk.patch @@ -1,55 +1,57 @@ -From 54fcf64308c718b275629a28678dcfcc90014205 Mon Sep 17 00:00:00 2001 +From 7e2722ee435b20f9445be40ace0f5298126ae23c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 Subject: [PATCH 3/4] custom error message for old sdk +Co-Authored-By: H. Vetinari --- libcxx/include/__availability | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libcxx/include/__availability b/libcxx/include/__availability -index 7807f22b716f..94f6e070b936 100644 +index b8b2da9bb122..59fafbbee393 100644 --- a/libcxx/include/__availability +++ b/libcxx/include/__availability -@@ -279,12 +279,12 @@ - # define _LIBCPP_AVAILABILITY_HAS_NO_FILESYSTEM_LIBRARY - # endif - # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY \ -- __attribute__((availability(macos,strict,introduced=10.15))) \ -+ __attribute__((availability(macos,strict,introduced=10.15,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios,strict,introduced=13.0))) \ - __attribute__((availability(tvos,strict,introduced=13.0))) \ - __attribute__((availability(watchos,strict,introduced=6.0))) +@@ -188,13 +188,13 @@ + # define _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY 1 + # endif + # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY \ +- __attribute__((availability(macos, strict, introduced = 10.15))) \ ++ __attribute__((availability(macos, strict, introduced = 10.15, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 13.0))) \ + __attribute__((availability(tvos, strict, introduced = 13.0))) \ + __attribute__((availability(watchos, strict, introduced = 6.0))) + // clang-format off # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH \ - _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15,message=\"see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk\"))), apply_to=any(function,record))") \ _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \ _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \ _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))") -@@ -302,7 +302,7 @@ - # define _LIBCPP_AVAILABILITY_HAS_NO_TO_CHARS_FLOATING_POINT - # endif - # define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT \ -- __attribute__((availability(macos,strict,introduced=13.3))) \ -+ __attribute__((availability(macos,strict,introduced=13.3,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios,strict,introduced=16.3))) \ - __attribute__((availability(tvos,strict,introduced=16.3))) \ - __attribute__((availability(watchos,strict,introduced=9.3))) -@@ -315,7 +315,7 @@ - # define _LIBCPP_AVAILABILITY_HAS_NO_SYNC - # endif - # define _LIBCPP_AVAILABILITY_SYNC \ -- __attribute__((availability(macos,strict,introduced=11.0))) \ -+ __attribute__((availability(macos,strict,introduced=11.0,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios,strict,introduced=14.0))) \ - __attribute__((availability(tvos,strict,introduced=14.0))) \ - __attribute__((availability(watchos,strict,introduced=7.0))) -@@ -340,7 +340,7 @@ +@@ -217,7 +217,7 @@ + # define _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT 1 + # endif + # define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT \ +- __attribute__((availability(macos, strict, introduced = 13.3))) \ ++ __attribute__((availability(macos, strict, introduced = 13.3, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 16.3))) \ + __attribute__((availability(tvos, strict, introduced = 16.3))) \ + __attribute__((availability(watchos, strict, introduced = 9.3))) +@@ -234,7 +234,7 @@ + # define _LIBCPP_AVAILABILITY_HAS_SYNC 1 + # endif + # define _LIBCPP_AVAILABILITY_SYNC \ +- __attribute__((availability(macos, strict, introduced = 11.0))) \ ++ __attribute__((availability(macos, strict, introduced = 11.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 14.0))) \ + __attribute__((availability(tvos, strict, introduced = 14.0))) \ + __attribute__((availability(watchos, strict, introduced = 7.0))) +@@ -262,7 +262,7 @@ // use availability annotations until that bug has been fixed. # if 0 # define _LIBCPP_AVAILABILITY_PMR \ - __attribute__((availability(macos, strict, introduced = 14.0))) \ -+ __attribute__((availability(macos, strict, introduced = 14.0,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ ++ __attribute__((availability(macos, strict, introduced = 14.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ __attribute__((availability(ios, strict, introduced = 17.0))) \ __attribute__((availability(tvos, strict, introduced = 17.0))) \ __attribute__((availability(watchos, strict, introduced = 10.0))) diff --git a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch index ba0bec89..05eaf7ea 100644 --- a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch +++ b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch @@ -1,4 +1,4 @@ -From 428205712f3ebd4efb7b0ea71d9fa45e0b28fece Mon Sep 17 00:00:00 2001 +From 1e69aea47bc666836672f1da1c4f8d6a515e8689 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 8 Feb 2023 16:44:15 +1100 Subject: [PATCH 4/4] Revert "[libc++] Remove workaround for C11 features on @@ -12,11 +12,11 @@ This reverts commit 21f73d5826fb5024a27eaacafadfa316f58949c5. 3 files changed, 84 insertions(+), 4 deletions(-) diff --git a/libcxx/include/__config b/libcxx/include/__config -index 9759d3b9e8e0..9a27abe3367b 100644 +index 8b2eaf69d170..46159abad1ec 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config -@@ -556,6 +556,72 @@ - # define _LIBCPP_NO_CFI +@@ -611,6 +611,72 @@ _LIBCPP_HARDENING_MODE_DEBUG + # define _LIBCPP_USING_DEV_RANDOM # endif +// If the compiler supports using_if_exists, pretend we have those functions and they'll @@ -89,13 +89,13 @@ index 9759d3b9e8e0..9a27abe3367b 100644 # define _LIBCPP_ALIGNOF(_Tp) alignof(_Tp) diff --git a/libcxx/include/cstdlib b/libcxx/include/cstdlib -index ab2c159c7259..44a6f6a5dc36 100644 +index 9bf0ea3f73b1..d7a64fbd55a8 100644 --- a/libcxx/include/cstdlib +++ b/libcxx/include/cstdlib -@@ -140,11 +140,11 @@ using ::mbtowc _LIBCPP_USING_IF_EXISTS; - using ::wctomb _LIBCPP_USING_IF_EXISTS; +@@ -142,11 +142,11 @@ using ::wctomb _LIBCPP_USING_IF_EXISTS; using ::mbstowcs _LIBCPP_USING_IF_EXISTS; using ::wcstombs _LIBCPP_USING_IF_EXISTS; + #endif -#if !defined(_LIBCPP_CXX03_LANG) +#if !defined(_LIBCPP_CXX03_LANG) && defined(_LIBCPP_HAS_QUICK_EXIT) using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; From 4e948938ec4c878d3c2677e9016ae1eab06d5e4d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 7 May 2024 06:55:55 +1100 Subject: [PATCH 28/55] bump GCC version --- recipe/conda_build_config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index b1501171..7790d45c 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -6,9 +6,9 @@ cxx_compiler: # [osx] # libcxx only supports the last released GCC version, see # https://libcxx.llvm.org/index.html#platform-and-compiler-support c_compiler_version: # [linux] - - 12 # [linux] + - 13 # [linux] cxx_compiler_version: # [linux] - - 12 # [linux] + - 13 # [linux] # we want different hashes between osx-64 & osx-arm dummy_var: # [osx] From 1de04b0ed45727cb9ca616a2f195aa26161ecccd Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 12:13:13 +1100 Subject: [PATCH 29/55] unpin clang compilers --- recipe/conda_build_config.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 7790d45c..236305df 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -5,10 +5,12 @@ cxx_compiler: # [osx] # libcxx only supports the last released GCC version, see # https://libcxx.llvm.org/index.html#platform-and-compiler-support -c_compiler_version: # [linux] +c_compiler_version: # [unix] - 13 # [linux] -cxx_compiler_version: # [linux] + - "*" # [osx] +cxx_compiler_version: # [unix] - 13 # [linux] + - "*" # [osx] # we want different hashes between osx-64 & osx-arm dummy_var: # [osx] From c9567861175e8c292c163557c6deb95e79e92a3c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 15:25:47 +1100 Subject: [PATCH 30/55] disable a mis-detected feature that's not available on current macOS --- recipe/meta.yaml | 2 ++ ...001-Support-legacy-standalone-builds.patch | 2 +- ...02-Fix-ABI-compatibility-with-system.patch | 2 +- ...003-custom-error-message-for-old-sdk.patch | 2 +- ...ve-workaround-for-C11-features-on-co.patch | 2 +- ...AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch | 25 +++++++++++++++++++ 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8ab82b25..f5087e66 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -21,6 +21,8 @@ source: # using new libcxx with old clang versions (beyond what upstream supports) relies on # having these fallbacks in place. Drop if conflict-resolution becomes too messy. - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch + # fix for https://github.com/llvm/llvm-project/issues/77653 + - patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch build: number: 0 diff --git a/recipe/patches/0001-Support-legacy-standalone-builds.patch b/recipe/patches/0001-Support-legacy-standalone-builds.patch index 94e8eb2f..8914f94e 100644 --- a/recipe/patches/0001-Support-legacy-standalone-builds.patch +++ b/recipe/patches/0001-Support-legacy-standalone-builds.patch @@ -1,7 +1,7 @@ From bf0dac8954fed53dcc579ccf564dd011e11616b2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 18 May 2021 19:51:28 -0500 -Subject: [PATCH 1/4] Support legacy standalone builds +Subject: [PATCH 1/5] Support legacy standalone builds --- libcxx/src/CMakeLists.txt | 17 +++++++++++++++++ diff --git a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch index 68330470..abd02b29 100644 --- a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch @@ -1,7 +1,7 @@ From b1113a136e91b0788e2fa28e578142e45016eae9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 -Subject: [PATCH 2/4] Fix ABI compatibility with system +Subject: [PATCH 2/5] Fix ABI compatibility with system --- libcxx/src/locale.cpp | 16 ++++++++-------- diff --git a/recipe/patches/0003-custom-error-message-for-old-sdk.patch b/recipe/patches/0003-custom-error-message-for-old-sdk.patch index ac08bd8f..987b89b6 100644 --- a/recipe/patches/0003-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0003-custom-error-message-for-old-sdk.patch @@ -1,7 +1,7 @@ From 7e2722ee435b20f9445be40ace0f5298126ae23c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 -Subject: [PATCH 3/4] custom error message for old sdk +Subject: [PATCH 3/5] custom error message for old sdk Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch index 05eaf7ea..ef3a2d54 100644 --- a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch +++ b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch @@ -1,7 +1,7 @@ From 1e69aea47bc666836672f1da1c4f8d6a515e8689 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 8 Feb 2023 16:44:15 +1100 -Subject: [PATCH 4/4] Revert "[libc++] Remove workaround for C11 features on +Subject: [PATCH 4/5] Revert "[libc++] Remove workaround for C11 features on compilers that don't support using_if_exists" This reverts commit 21f73d5826fb5024a27eaacafadfa316f58949c5. diff --git a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch new file mode 100644 index 00000000..06e181ff --- /dev/null +++ b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch @@ -0,0 +1,25 @@ +From 5499430ec91578805ae0ca5fd5c994f29e41b01d Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Sun, 26 May 2024 22:04:04 +1100 +Subject: [PATCH 5/5] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION + unconditionally + +https://github.com/llvm/llvm-project/issues/77653 +https://github.com/llvm/llvm-project/issues/86077 +--- + libcxx/include/__availability | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcxx/include/__availability b/libcxx/include/__availability +index 59fafbbee393..50dab515d2a7 100644 +--- a/libcxx/include/__availability ++++ b/libcxx/include/__availability +@@ -103,7 +103,7 @@ + // These macros controls the availability of __cxa_init_primary_exception + // in the built library, which std::make_exception_ptr might use + // (see libcxx/include/__exception/exception_ptr.h). +-# define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 1 ++# define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 0 + # define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION + + // These macros control the availability of all parts of that From 7af4a4df570be0c63de4dbd35b4dede2e3f1ed67 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 15:26:59 +1100 Subject: [PATCH 31/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.06.21.08.07.40 --- .ci_support/linux_64_.yaml | 2 +- ...nnel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 2 +- .../osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml | 2 +- ...nnel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 2 +- ...osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 72a0ae22..c97b6a5d 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- '13' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 target_platform: diff --git a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 843483cb..a3c82533 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - clang_bootstrap cxx_compiler_version: -- '16' +- '*' dummy_var: - '0' macos_machine: diff --git a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml index b8b9173d..474c821c 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - clang_bootstrap cxx_compiler_version: -- '16' +- '*' dummy_var: - '0' macos_machine: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 26bec688..6e28a34c 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - clang_bootstrap cxx_compiler_version: -- '16' +- '*' dummy_var: - '1' macos_machine: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml index e294892b..95062275 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -13,7 +13,7 @@ channel_targets: cxx_compiler: - clang_bootstrap cxx_compiler_version: -- '16' +- '*' dummy_var: - '1' macos_machine: From 8ab887373108a540155bc4612d4beed5afb4900c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 15:30:54 +1100 Subject: [PATCH 32/55] avoid gcc linker tripping over -nostdlib++ --- recipe/meta.yaml | 2 ++ ...001-Support-legacy-standalone-builds.patch | 2 +- ...02-Fix-ABI-compatibility-with-system.patch | 2 +- ...003-custom-error-message-for-old-sdk.patch | 2 +- ...ve-workaround-for-C11-features-on-co.patch | 2 +- ...AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch | 2 +- ...age-for-libunwind-to-avoid-running-i.patch | 32 +++++++++++++++++++ 7 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f5087e66..3cd7b072 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -23,6 +23,8 @@ source: - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch # fix for https://github.com/llvm/llvm-project/issues/77653 - patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch + # GCC's C linker does not understand -nostdlib++; needs CXX + - patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch build: number: 0 diff --git a/recipe/patches/0001-Support-legacy-standalone-builds.patch b/recipe/patches/0001-Support-legacy-standalone-builds.patch index 8914f94e..fdc9ff5b 100644 --- a/recipe/patches/0001-Support-legacy-standalone-builds.patch +++ b/recipe/patches/0001-Support-legacy-standalone-builds.patch @@ -1,7 +1,7 @@ From bf0dac8954fed53dcc579ccf564dd011e11616b2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 18 May 2021 19:51:28 -0500 -Subject: [PATCH 1/5] Support legacy standalone builds +Subject: [PATCH 1/6] Support legacy standalone builds --- libcxx/src/CMakeLists.txt | 17 +++++++++++++++++ diff --git a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch index abd02b29..52338b13 100644 --- a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch @@ -1,7 +1,7 @@ From b1113a136e91b0788e2fa28e578142e45016eae9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 -Subject: [PATCH 2/5] Fix ABI compatibility with system +Subject: [PATCH 2/6] Fix ABI compatibility with system --- libcxx/src/locale.cpp | 16 ++++++++-------- diff --git a/recipe/patches/0003-custom-error-message-for-old-sdk.patch b/recipe/patches/0003-custom-error-message-for-old-sdk.patch index 987b89b6..c36671a7 100644 --- a/recipe/patches/0003-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0003-custom-error-message-for-old-sdk.patch @@ -1,7 +1,7 @@ From 7e2722ee435b20f9445be40ace0f5298126ae23c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 -Subject: [PATCH 3/5] custom error message for old sdk +Subject: [PATCH 3/6] custom error message for old sdk Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch index ef3a2d54..47d6fefc 100644 --- a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch +++ b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch @@ -1,7 +1,7 @@ From 1e69aea47bc666836672f1da1c4f8d6a515e8689 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 8 Feb 2023 16:44:15 +1100 -Subject: [PATCH 4/5] Revert "[libc++] Remove workaround for C11 features on +Subject: [PATCH 4/6] Revert "[libc++] Remove workaround for C11 features on compilers that don't support using_if_exists" This reverts commit 21f73d5826fb5024a27eaacafadfa316f58949c5. diff --git a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch index 06e181ff..b102bf84 100644 --- a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch +++ b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch @@ -1,7 +1,7 @@ From 5499430ec91578805ae0ca5fd5c994f29e41b01d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 22:04:04 +1100 -Subject: [PATCH 5/5] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION +Subject: [PATCH 5/6] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION unconditionally https://github.com/llvm/llvm-project/issues/77653 diff --git a/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch b/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch new file mode 100644 index 00000000..b0b89fd1 --- /dev/null +++ b/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch @@ -0,0 +1,32 @@ +From 7d1809e27c49dadf14b791cdc93a1ea58a2d8def Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Sun, 26 May 2024 13:01:28 +1100 +Subject: [PATCH 6/6] set CXX as language for libunwind to avoid running into + unknown flags for CC + +--- + libunwind/src/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libunwind/src/CMakeLists.txt b/libunwind/src/CMakeLists.txt +index 780430ba70ba..2cf2c8c0f1f7 100644 +--- a/libunwind/src/CMakeLists.txt ++++ b/libunwind/src/CMakeLists.txt +@@ -168,7 +168,7 @@ if (LIBUNWIND_ENABLE_SHARED) + set_target_properties(unwind_shared + PROPERTIES + LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" +- LINKER_LANGUAGE C ++ LINKER_LANGUAGE CXX + OUTPUT_NAME "${LIBUNWIND_SHARED_OUTPUT_NAME}" + VERSION "1.0" + SOVERSION "1" +@@ -214,7 +214,7 @@ if (LIBUNWIND_ENABLE_STATIC) + set_target_properties(unwind_static + PROPERTIES + LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" +- LINKER_LANGUAGE C ++ LINKER_LANGUAGE CXX + OUTPUT_NAME "${LIBUNWIND_STATIC_OUTPUT_NAME}" + ) + From df395e7571f7c05cc26d9711daeedd017f5f8700 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 15:32:57 +1100 Subject: [PATCH 33/55] help correctly link to dl/pthreads on linux --- recipe/meta.yaml | 2 ++ ...001-Support-legacy-standalone-builds.patch | 2 +- ...02-Fix-ABI-compatibility-with-system.patch | 2 +- ...003-custom-error-message-for-old-sdk.patch | 2 +- ...ve-workaround-for-C11-features-on-co.patch | 2 +- ...AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch | 2 +- ...age-for-libunwind-to-avoid-running-i.patch | 2 +- ...-misdetection-of-dl-pthread-on-linux.patch | 24 +++++++++++++++++++ 8 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3cd7b072..364e7730 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -25,6 +25,8 @@ source: - patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch # GCC's C linker does not understand -nostdlib++; needs CXX - patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch + # something broke detection of dladdr on linux + - patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch build: number: 0 diff --git a/recipe/patches/0001-Support-legacy-standalone-builds.patch b/recipe/patches/0001-Support-legacy-standalone-builds.patch index fdc9ff5b..9b6d5aa9 100644 --- a/recipe/patches/0001-Support-legacy-standalone-builds.patch +++ b/recipe/patches/0001-Support-legacy-standalone-builds.patch @@ -1,7 +1,7 @@ From bf0dac8954fed53dcc579ccf564dd011e11616b2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 18 May 2021 19:51:28 -0500 -Subject: [PATCH 1/6] Support legacy standalone builds +Subject: [PATCH 1/7] Support legacy standalone builds --- libcxx/src/CMakeLists.txt | 17 +++++++++++++++++ diff --git a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch index 52338b13..ea1da266 100644 --- a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch @@ -1,7 +1,7 @@ From b1113a136e91b0788e2fa28e578142e45016eae9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 -Subject: [PATCH 2/6] Fix ABI compatibility with system +Subject: [PATCH 2/7] Fix ABI compatibility with system --- libcxx/src/locale.cpp | 16 ++++++++-------- diff --git a/recipe/patches/0003-custom-error-message-for-old-sdk.patch b/recipe/patches/0003-custom-error-message-for-old-sdk.patch index c36671a7..41288c2f 100644 --- a/recipe/patches/0003-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0003-custom-error-message-for-old-sdk.patch @@ -1,7 +1,7 @@ From 7e2722ee435b20f9445be40ace0f5298126ae23c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 -Subject: [PATCH 3/6] custom error message for old sdk +Subject: [PATCH 3/7] custom error message for old sdk Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch index 47d6fefc..8ede9081 100644 --- a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch +++ b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch @@ -1,7 +1,7 @@ From 1e69aea47bc666836672f1da1c4f8d6a515e8689 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 8 Feb 2023 16:44:15 +1100 -Subject: [PATCH 4/6] Revert "[libc++] Remove workaround for C11 features on +Subject: [PATCH 4/7] Revert "[libc++] Remove workaround for C11 features on compilers that don't support using_if_exists" This reverts commit 21f73d5826fb5024a27eaacafadfa316f58949c5. diff --git a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch index b102bf84..301f6e31 100644 --- a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch +++ b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch @@ -1,7 +1,7 @@ From 5499430ec91578805ae0ca5fd5c994f29e41b01d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 22:04:04 +1100 -Subject: [PATCH 5/6] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION +Subject: [PATCH 5/7] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION unconditionally https://github.com/llvm/llvm-project/issues/77653 diff --git a/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch b/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch index b0b89fd1..3fc45567 100644 --- a/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch +++ b/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch @@ -1,7 +1,7 @@ From 7d1809e27c49dadf14b791cdc93a1ea58a2d8def Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 13:01:28 +1100 -Subject: [PATCH 6/6] set CXX as language for libunwind to avoid running into +Subject: [PATCH 6/7] set CXX as language for libunwind to avoid running into unknown flags for CC --- diff --git a/recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch b/recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch new file mode 100644 index 00000000..e8e9e636 --- /dev/null +++ b/recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch @@ -0,0 +1,24 @@ +From 8ca66527c9f7930a153ee8be487aa77734277967 Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Sun, 26 May 2024 15:35:03 +1100 +Subject: [PATCH 7/7] avoid misdetection of dl/pthread on linux + +--- + libunwind/cmake/config-ix.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libunwind/cmake/config-ix.cmake b/libunwind/cmake/config-ix.cmake +index 126c872f0d48..7b5ff47ac011 100644 +--- a/libunwind/cmake/config-ix.cmake ++++ b/libunwind/cmake/config-ix.cmake +@@ -120,8 +120,8 @@ if(FUCHSIA) + set(LIBUNWIND_HAS_DL_LIB NO) + set(LIBUNWIND_HAS_PTHREAD_LIB NO) + else() +- check_library_exists(dl dladdr "" LIBUNWIND_HAS_DL_LIB) +- check_library_exists(pthread pthread_once "" LIBUNWIND_HAS_PTHREAD_LIB) ++ set(LIBUNWIND_HAS_DL_LIB YES) ++ set(LIBUNWIND_HAS_PTHREAD_LIB YES) + endif() + + if(HAIKU) From 21c5030420f2d05d314bee410e9d6b0ef3c13b26 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 22 Jun 2024 15:49:23 +1100 Subject: [PATCH 34/55] package libunwind as well --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 364e7730..7bd9cf4b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -59,6 +59,7 @@ outputs: - lib/libc++.* - lib/libc++fs.* - lib/libc++experimental.* + - lib/libunwind.* - Library/bin/c++*.dll - Library/lib/c++*.lib - Library/lib/libc++*.lib From a09b2d6b37dfa64ee4f71da0926be34fcc87e13c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 30 Jun 2024 07:59:53 +1100 Subject: [PATCH 35/55] drop testing against clang<15 clang 15 isn't supported by libcxx 18 anymore either, but seems to work in limited testing; OTOH, clang 14 blows up on simple header inclusion already --- recipe/meta.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 7bd9cf4b..c2270e04 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -119,10 +119,6 @@ outputs: - libcxx-testing 0.17 # [osx] - libcxx-testing 0.16 # [osx] - libcxx-testing 0.15 # [osx] - - libcxx-testing 0.14 # [osx] - - libcxx-testing 0.13 # [osx] - - libcxx-testing 0.12 # [osx] - - libcxx-testing 0.11 # [osx] {% endif %} - name: libcxxabi From 7a91db1b832a055374f2515b510eab309c1ac107 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 30 Jun 2024 08:30:38 +1100 Subject: [PATCH 36/55] remove patch for pre-C11 compat --- recipe/meta.yaml | 5 - ...ve-workaround-for-C11-features-on-co.patch | 150 ------------------ 2 files changed, 155 deletions(-) delete mode 100644 recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c2270e04..b4b2351e 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,11 +16,6 @@ source: # See https://discourse.llvm.org/t/shipping-custom-libc-on-macos/58606 - patches/0002-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] - patches/0003-custom-error-message-for-old-sdk.patch - # upstream removed fallbacks in case the underlying libc didn't support C11 in - # https://github.com/llvm/llvm-project/commit/21f73d5826fb5024a27eaacafadfa316f58949c5; - # using new libcxx with old clang versions (beyond what upstream supports) relies on - # having these fallbacks in place. Drop if conflict-resolution becomes too messy. - - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch # fix for https://github.com/llvm/llvm-project/issues/77653 - patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch # GCC's C linker does not understand -nostdlib++; needs CXX diff --git a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch b/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch deleted file mode 100644 index 8ede9081..00000000 --- a/recipe/patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 1e69aea47bc666836672f1da1c4f8d6a515e8689 Mon Sep 17 00:00:00 2001 -From: "H. Vetinari" -Date: Wed, 8 Feb 2023 16:44:15 +1100 -Subject: [PATCH 4/7] Revert "[libc++] Remove workaround for C11 features on - compilers that don't support using_if_exists" - -This reverts commit 21f73d5826fb5024a27eaacafadfa316f58949c5. ---- - libcxx/include/__config | 66 +++++++++++++++++++++++++++++++++++++++++ - libcxx/include/cstdlib | 4 +-- - libcxx/include/ctime | 18 +++++++++-- - 3 files changed, 84 insertions(+), 4 deletions(-) - -diff --git a/libcxx/include/__config b/libcxx/include/__config -index 8b2eaf69d170..46159abad1ec 100644 ---- a/libcxx/include/__config -+++ b/libcxx/include/__config -@@ -611,6 +611,72 @@ _LIBCPP_HARDENING_MODE_DEBUG - # define _LIBCPP_USING_DEV_RANDOM - # endif - -+// If the compiler supports using_if_exists, pretend we have those functions and they'll -+// be picked up if the C library provides them. -+// -+// TODO: Once we drop support for Clang 12, we can assume the compiler supports using_if_exists -+// for platforms that don't have a conforming C11 library, so we can drop this whole thing. -+# if __has_attribute(using_if_exists) -+# define _LIBCPP_HAS_TIMESPEC_GET -+# define _LIBCPP_HAS_QUICK_EXIT -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# else -+# if (defined(__ISO_C_VISIBLE) && (__ISO_C_VISIBLE >= 2011)) || __cplusplus >= 201103L -+# if defined(__FreeBSD__) -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# define _LIBCPP_HAS_QUICK_EXIT -+# if __FreeBSD_version >= 1300064 || \ -+ (__FreeBSD_version >= 1201504 && __FreeBSD_version < 1300000) -+# define _LIBCPP_HAS_TIMESPEC_GET -+# endif -+# elif defined(__BIONIC__) -+# if __ANDROID_API__ >= 21 -+# define _LIBCPP_HAS_QUICK_EXIT -+# endif -+# if __ANDROID_API__ >= 28 -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# endif -+# if __ANDROID_API__ >= 29 -+# define _LIBCPP_HAS_TIMESPEC_GET -+# endif -+# elif defined(__Fuchsia__) || defined(__wasi__) || defined(__NetBSD__) -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# define _LIBCPP_HAS_QUICK_EXIT -+# define _LIBCPP_HAS_TIMESPEC_GET -+# elif defined(__OpenBSD__) -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# define _LIBCPP_HAS_TIMESPEC_GET -+# elif defined(__linux__) -+# if !defined(_LIBCPP_HAS_MUSL_LIBC) -+# if _LIBCPP_GLIBC_PREREQ(2, 15) || defined(__BIONIC__) -+# define _LIBCPP_HAS_QUICK_EXIT -+# endif -+# if _LIBCPP_GLIBC_PREREQ(2, 17) -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# define _LIBCPP_HAS_TIMESPEC_GET -+# endif -+# else // defined(_LIBCPP_HAS_MUSL_LIBC) -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# define _LIBCPP_HAS_QUICK_EXIT -+# define _LIBCPP_HAS_TIMESPEC_GET -+# endif -+# elif defined(_LIBCPP_MSVCRT) -+ // Using Microsoft's C Runtime library, not MinGW -+# define _LIBCPP_HAS_TIMESPEC_GET -+# elif defined(__APPLE__) -+ // timespec_get and aligned_alloc were introduced in macOS 10.15 and -+ // aligned releases -+# if ((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101500) || \ -+ (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 130000) || \ -+ (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ >= 130000) || \ -+ (defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ >= 60000)) -+# define _LIBCPP_HAS_ALIGNED_ALLOC -+# define _LIBCPP_HAS_TIMESPEC_GET -+# endif -+# endif // __APPLE__ -+# endif -+# endif // __has_attribute(using_if_exists) -+ - # ifndef _LIBCPP_CXX03_LANG - - # define _LIBCPP_ALIGNOF(_Tp) alignof(_Tp) -diff --git a/libcxx/include/cstdlib b/libcxx/include/cstdlib -index 9bf0ea3f73b1..d7a64fbd55a8 100644 ---- a/libcxx/include/cstdlib -+++ b/libcxx/include/cstdlib -@@ -142,11 +142,11 @@ using ::wctomb _LIBCPP_USING_IF_EXISTS; - using ::mbstowcs _LIBCPP_USING_IF_EXISTS; - using ::wcstombs _LIBCPP_USING_IF_EXISTS; - #endif --#if !defined(_LIBCPP_CXX03_LANG) -+#if !defined(_LIBCPP_CXX03_LANG) && defined(_LIBCPP_HAS_QUICK_EXIT) - using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; - using ::quick_exit _LIBCPP_USING_IF_EXISTS; - #endif --#if _LIBCPP_STD_VER >= 17 -+#if _LIBCPP_STD_VER >= 17 && defined(_LIBCPP_HAS_ALIGNED_ALLOC) - using ::aligned_alloc _LIBCPP_USING_IF_EXISTS; - #endif - -diff --git a/libcxx/include/ctime b/libcxx/include/ctime -index b61e19d6446d..6b48da7a7e4b 100644 ---- a/libcxx/include/ctime -+++ b/libcxx/include/ctime -@@ -60,13 +60,27 @@ int timespec_get( struct timespec *ts, int base); // C++17 - # pragma GCC system_header - #endif - -+// FIXME: -+// Apple SDKs don't define ::timespec_get unconditionally in C++ mode. This -+// should be fixed in future SDKs, but for the time being we need to avoid -+// trying to use that declaration when the SDK doesn't provide it. Note that -+// we're detecting this here instead of in <__config> because we can't include -+// system headers from <__config>, since it leads to circular module dependencies. -+// This is also meant to be a very temporary workaround until the SDKs are fixed. -+#if defined(__APPLE__) && !__has_attribute(using_if_exists) -+# include -+# if defined(_LIBCPP_HAS_TIMESPEC_GET) && (__DARWIN_C_LEVEL < __DARWIN_C_FULL) -+# define _LIBCPP_HAS_TIMESPEC_GET_NOT_ACTUALLY_PROVIDED -+# endif -+#endif -+ - _LIBCPP_BEGIN_NAMESPACE_STD - - using ::clock_t _LIBCPP_USING_IF_EXISTS; - using ::size_t _LIBCPP_USING_IF_EXISTS; - using ::time_t _LIBCPP_USING_IF_EXISTS; - using ::tm _LIBCPP_USING_IF_EXISTS; --#if _LIBCPP_STD_VER >= 17 -+#if _LIBCPP_STD_VER >= 17 && defined(_LIBCPP_HAS_TIMESPEC_GET) - using ::timespec _LIBCPP_USING_IF_EXISTS; - #endif - using ::clock _LIBCPP_USING_IF_EXISTS; -@@ -78,7 +92,7 @@ using ::ctime _LIBCPP_USING_IF_EXISTS; - using ::gmtime _LIBCPP_USING_IF_EXISTS; - using ::localtime _LIBCPP_USING_IF_EXISTS; - using ::strftime _LIBCPP_USING_IF_EXISTS; --#if _LIBCPP_STD_VER >= 17 -+#if _LIBCPP_STD_VER >= 17 && defined(_LIBCPP_HAS_TIMESPEC_GET) && !defined(_LIBCPP_HAS_TIMESPEC_GET_NOT_ACTUALLY_PROVIDED) - using ::timespec_get _LIBCPP_USING_IF_EXISTS; - #endif - From 97b4c4f1a2a22cef3083829fd22837265a107310 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 1 Jul 2024 11:22:15 +1100 Subject: [PATCH 37/55] ensure correct run-exports for libcxxabi --- recipe/meta.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b4b2351e..950b2e04 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -122,6 +122,9 @@ outputs: files: - lib/libc++abi.* requirements: + build: + # for run-exports + - {{ stdlib('c') }} run_constrained: - libcxx {{ version }}.* test: From 666ff9de50f4a69d018a38b9237e292201f5b2aa Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 1 Jul 2024 11:23:48 +1100 Subject: [PATCH 38/55] turn libunwind into linux-only output --- recipe/meta.yaml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 950b2e04..dbb1b1c4 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -54,7 +54,6 @@ outputs: - lib/libc++.* - lib/libc++fs.* - lib/libc++experimental.* - - lib/libunwind.* - Library/bin/c++*.dll - Library/lib/c++*.lib - Library/lib/libc++*.lib @@ -121,6 +120,21 @@ outputs: skip: true # [not linux] files: - lib/libc++abi.* + requirements: + build: + # for run-exports + - {{ stdlib('c') }} + run: + - {{ pin_subpackage("libunwind", exact=True) }} # [linux] + test: + commands: + - test -f $PREFIX/lib/libc++abi.so # [linux] + + - name: libunwind + build: + skip: true # [not linux] + files: + - lib/libunwind.* requirements: build: # for run-exports @@ -129,7 +143,7 @@ outputs: - libcxx {{ version }}.* test: commands: - - test -f $PREFIX/lib/libc++abi.so # [linux] + - test -f $PREFIX/lib/libunwind.so # [linux] about: home: http://libcxx.llvm.org/ From a3a0b87fe1a6a259cf3f778b6c0d0444346f3cb2 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 1 Jul 2024 11:24:03 +1100 Subject: [PATCH 39/55] point to system libunwind on osx --- recipe/build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/build.sh b/recipe/build.sh index 172e0be9..4a7a2878 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -38,4 +38,6 @@ ninja -C build install-cxx install-cxxabi install-unwind if [[ "$target_platform" == osx-* ]]; then # on osx we point libc++ to the system libc++abi $INSTALL_NAME_TOOL -change "@rpath/libc++abi.1.dylib" "/usr/lib/libc++abi.dylib" $PREFIX/lib/libc++.1.0.dylib + # same for libunwind + $INSTALL_NAME_TOOL -change "@rpath/libunwind.1.dylib" "/usr/lib/system/libunwind.dylib" $PREFIX/lib/libc++.1.0.dylib fi From be6768f09f5008d16e0b864152d82b3df142e004 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 1 Jul 2024 12:19:38 +1100 Subject: [PATCH 40/55] set LIBCXX_HARDENING_MODE="fast" --- recipe/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/build.sh b/recipe/build.sh index 4a7a2878..cbcad3f5 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -25,6 +25,7 @@ cmake -G Ninja \ -DLIBCXX_INCLUDE_BENCHMARKS=OFF \ -DLIBCXX_INCLUDE_DOCS=OFF \ -DLIBCXX_INCLUDE_TESTS=OFF \ + -DLIBCXX_HARDENING_MODE="fast" \ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \ $CMAKE_ARGS \ $CMAKE_EXTRA_ARGS From c87c64881ad8e1498783fb87cf7ee15bf621f3b9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 3 Jul 2024 10:12:00 -0500 Subject: [PATCH 41/55] Fix MACOSX_DEPLOYMENT_TARGET --- recipe/conda_build_config.yaml | 14 ++------------ recipe/meta.yaml | 2 +- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index b1501171..67e7b18f 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -21,21 +21,11 @@ MACOSX_SDK_VERSION: # [osx] # 12.0 is not available in conda-forge-ci-setup - "12.3" # [osx] -c_stdlib_version: # [linux or osx] +c_stdlib_version: # [linux] # actually would need >=2.24, but we don't have that in conda-forge yet - "2.17" # [linux] - - "10.13" # [osx and x86_64] - - "11.0" # [osx and arm64] - # w.r.t. to the ABI of the system libcxx, this would need to be 12.0, + # w.r.t. to the ABI of the system libcxx, this would need to be 12.0 on macos # but as we only publish one build to main, maintain global lower bounds - - "10.13" # [osx and x86_64] - - "11.0" # [osx and arm64] - -# required to properly populate variant configs due to smithy's merge logic for stdlib -MACOSX_DEPLOYMENT_TARGET: # [osx] - - "10.13" # [osx and x86_64] - - "11.0" # [osx and arm64] - - "12.0" # [osx] # in some scenarios, libraries will load a cached _system_ libc++, and if we have an # ABI-mismatch with that system lib, segfaults ensue (see libcxx-testing-feedstock); diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 9f441582..53ec11a6 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -23,7 +23,7 @@ source: - patches/0004-Revert-libc-Remove-workaround-for-C11-features-on-co.patch build: - number: 2 + number: 3 skip: true # [win] skip: true # [ppc64le or aarch64] ignore_run_exports: From 5fc7d1bbc4e4b13448485242ae465ea257aa4fbf Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 3 Jul 2024 10:17:41 -0500 Subject: [PATCH 42/55] rerender --- .ci_support/linux_64_.yaml | 2 +- ...etsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 6 ++---- ..._channel_targetsconda-forge_mainsys_abipost-12.yaml | 10 ++++------ ...etsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 6 ++---- ..._channel_targetsconda-forge_mainsys_abipost-12.yaml | 10 ++++------ 5 files changed, 13 insertions(+), 21 deletions(-) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 72a0ae22..51d8853a 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -3,7 +3,7 @@ c_stdlib: c_stdlib_version: - '2.17' cdt_name: -- cos6 +- cos7 channel_sources: - conda-forge channel_targets: diff --git a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 843483cb..2d17f152 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -2,6 +2,7 @@ MACOSX_DEPLOYMENT_TARGET: - '10.13' MACOSX_SDK_VERSION: - '10.14' +- '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -23,8 +24,5 @@ sys_abi: target_platform: - osx-64 zip_keys: -- - c_stdlib_version - - MACOSX_SDK_VERSION - - MACOSX_DEPLOYMENT_TARGET - - sys_abi +- - sys_abi - channel_targets diff --git a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml index b8b9173d..865000cf 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -1,11 +1,12 @@ MACOSX_DEPLOYMENT_TARGET: -- '12.0' +- '10.13' MACOSX_SDK_VERSION: +- '10.14' - '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '12.0' +- '10.13' channel_sources: - conda-forge channel_targets: @@ -23,8 +24,5 @@ sys_abi: target_platform: - osx-64 zip_keys: -- - c_stdlib_version - - MACOSX_SDK_VERSION - - MACOSX_DEPLOYMENT_TARGET - - sys_abi +- - sys_abi - channel_targets diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 26bec688..3313e227 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -2,6 +2,7 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' MACOSX_SDK_VERSION: - '11.0' +- '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -23,8 +24,5 @@ sys_abi: target_platform: - osx-arm64 zip_keys: -- - c_stdlib_version - - MACOSX_SDK_VERSION - - MACOSX_DEPLOYMENT_TARGET - - sys_abi +- - sys_abi - channel_targets diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml index e294892b..b6b7a829 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -1,11 +1,12 @@ MACOSX_DEPLOYMENT_TARGET: -- '12.0' +- '11.0' MACOSX_SDK_VERSION: +- '11.0' - '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: -- '12.0' +- '11.0' channel_sources: - conda-forge channel_targets: @@ -23,8 +24,5 @@ sys_abi: target_platform: - osx-arm64 zip_keys: -- - c_stdlib_version - - MACOSX_SDK_VERSION - - MACOSX_DEPLOYMENT_TARGET - - sys_abi +- - sys_abi - channel_targets From a8790768a6820f217011f2bb562271df75c66358 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 3 Jul 2024 10:17:50 -0500 Subject: [PATCH 43/55] Fix zip_keys --- recipe/conda_build_config.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 67e7b18f..b696909d 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -40,8 +40,5 @@ channel_targets: # [osx] - conda-forge main # [osx] zip_keys: # [osx] - - - c_stdlib_version # [osx] - - MACOSX_SDK_VERSION # [osx] - - MACOSX_DEPLOYMENT_TARGET # [osx] - - sys_abi # [osx] + - - sys_abi # [osx] - channel_targets # [osx] From e9213a5d3e55443231cc073194d23948b1b6a376 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 3 Jul 2024 12:03:53 -0500 Subject: [PATCH 44/55] Update MACOSX_SDK_VERSION --- recipe/conda_build_config.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index b696909d..ec280762 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -18,8 +18,6 @@ dummy_var: # [osx] MACOSX_SDK_VERSION: # [osx] - "10.14" # [osx and x86_64] - "11.0" # [osx and arm64] - # 12.0 is not available in conda-forge-ci-setup - - "12.3" # [osx] c_stdlib_version: # [linux] # actually would need >=2.24, but we don't have that in conda-forge yet From 560f2d7aecdbd0430bc4b6196121da9cf6fa3572 Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:05:39 +0000 Subject: [PATCH 45/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.36.2, and conda-forge-pinning 2024.07.03.16.03.14 --- ...da-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 1 - ...el_targetsconda-forge_mainsys_abipost-12.yaml | 1 - ...da-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 1 - ...el_targetsconda-forge_mainsys_abipost-12.yaml | 1 - README.md | 16 ++++++++-------- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 2d17f152..a8a618d5 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -2,7 +2,6 @@ MACOSX_DEPLOYMENT_TARGET: - '10.13' MACOSX_SDK_VERSION: - '10.14' -- '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: diff --git a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml index 865000cf..a0927ad9 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -2,7 +2,6 @@ MACOSX_DEPLOYMENT_TARGET: - '10.13' MACOSX_SDK_VERSION: - '10.14' -- '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 3313e227..c82b6da4 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -2,7 +2,6 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' MACOSX_SDK_VERSION: - '11.0' -- '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml index b6b7a829..daf37895 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -2,7 +2,6 @@ MACOSX_DEPLOYMENT_TARGET: - '11.0' MACOSX_SDK_VERSION: - '11.0' -- '12.3' c_stdlib: - macosx_deployment_target c_stdlib_version: diff --git a/README.md b/README.md index 2dde2db5..8e40fe09 100644 --- a/README.md +++ b/README.md @@ -82,14 +82,14 @@ Current release info Installing libcxx ================= -Installing `libcxx` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `libcxx` from the `conda-forge/label/libcxx_macos_lt_12` channel can be achieved by adding `conda-forge/label/libcxx_macos_lt_12` to your channels with: ``` -conda config --add channels conda-forge +conda config --add channels conda-forge/label/libcxx_macos_lt_12 conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libcxx, libcxxabi` can be installed with `conda`: +Once the `conda-forge/label/libcxx_macos_lt_12` channel has been enabled, `libcxx, libcxxabi` can be installed with `conda`: ``` conda install libcxx libcxxabi @@ -104,26 +104,26 @@ mamba install libcxx libcxxabi It is possible to list all of the versions of `libcxx` available on your platform with `conda`: ``` -conda search libcxx --channel conda-forge +conda search libcxx --channel conda-forge/label/libcxx_macos_lt_12 ``` or with `mamba`: ``` -mamba search libcxx --channel conda-forge +mamba search libcxx --channel conda-forge/label/libcxx_macos_lt_12 ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libcxx --channel conda-forge +mamba repoquery search libcxx --channel conda-forge/label/libcxx_macos_lt_12 # List packages depending on `libcxx`: -mamba repoquery whoneeds libcxx --channel conda-forge +mamba repoquery whoneeds libcxx --channel conda-forge/label/libcxx_macos_lt_12 # List dependencies of `libcxx`: -mamba repoquery depends libcxx --channel conda-forge +mamba repoquery depends libcxx --channel conda-forge/label/libcxx_macos_lt_12 ``` From 6d714642ff48c7caa45bca983e1783eb8e176541 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 8 Jul 2024 12:38:14 +1100 Subject: [PATCH 46/55] add more context to patches; merge fixes for stray `-nostdlib++` --- recipe/meta.yaml | 8 ++- ...001-Support-legacy-standalone-builds.patch | 2 +- ...02-Fix-ABI-compatibility-with-system.patch | 2 +- ...003-custom-error-message-for-old-sdk.patch | 2 +- ...AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch | 19 +++++-- ...y-nostdlib-flags-causing-errors-with.patch | 53 +++++++++++++++++++ ...age-for-libunwind-to-avoid-running-i.patch | 32 ----------- ...-misdetection-of-dl-pthread-on-linux.patch | 24 --------- 8 files changed, 74 insertions(+), 68 deletions(-) create mode 100644 recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch delete mode 100644 recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch delete mode 100644 recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index dbb1b1c4..82cf2ba4 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,12 +16,10 @@ source: # See https://discourse.llvm.org/t/shipping-custom-libc-on-macos/58606 - patches/0002-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] - patches/0003-custom-error-message-for-old-sdk.patch - # fix for https://github.com/llvm/llvm-project/issues/77653 + # disable feature that requires up-to-date libcxxabi, which we don't ship - patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch - # GCC's C linker does not understand -nostdlib++; needs CXX - - patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch - # something broke detection of dladdr on linux - - patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch + # work around https://github.com/llvm/llvm-project/issues/90332 + - patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch build: number: 0 diff --git a/recipe/patches/0001-Support-legacy-standalone-builds.patch b/recipe/patches/0001-Support-legacy-standalone-builds.patch index 9b6d5aa9..8914f94e 100644 --- a/recipe/patches/0001-Support-legacy-standalone-builds.patch +++ b/recipe/patches/0001-Support-legacy-standalone-builds.patch @@ -1,7 +1,7 @@ From bf0dac8954fed53dcc579ccf564dd011e11616b2 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 18 May 2021 19:51:28 -0500 -Subject: [PATCH 1/7] Support legacy standalone builds +Subject: [PATCH 1/5] Support legacy standalone builds --- libcxx/src/CMakeLists.txt | 17 +++++++++++++++++ diff --git a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch index ea1da266..abd02b29 100644 --- a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch @@ -1,7 +1,7 @@ From b1113a136e91b0788e2fa28e578142e45016eae9 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 -Subject: [PATCH 2/7] Fix ABI compatibility with system +Subject: [PATCH 2/5] Fix ABI compatibility with system --- libcxx/src/locale.cpp | 16 ++++++++-------- diff --git a/recipe/patches/0003-custom-error-message-for-old-sdk.patch b/recipe/patches/0003-custom-error-message-for-old-sdk.patch index 41288c2f..987b89b6 100644 --- a/recipe/patches/0003-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0003-custom-error-message-for-old-sdk.patch @@ -1,7 +1,7 @@ From 7e2722ee435b20f9445be40ace0f5298126ae23c Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 -Subject: [PATCH 3/7] custom error message for old sdk +Subject: [PATCH 3/5] custom error message for old sdk Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch index 301f6e31..eef2403d 100644 --- a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch +++ b/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch @@ -1,11 +1,22 @@ -From 5499430ec91578805ae0ca5fd5c994f29e41b01d Mon Sep 17 00:00:00 2001 +From 4744d322ef96d67b8543897b49ec8897d2633a1a Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 22:04:04 +1100 -Subject: [PATCH 5/7] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION +Subject: [PATCH 4/5] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION unconditionally -https://github.com/llvm/llvm-project/issues/77653 -https://github.com/llvm/llvm-project/issues/86077 +When _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS is not defined, things +work as expected: i.e. the feature is only used on macOS that vendors LLVM>=18. + +Our general policy of setting `-D_LIBCPP_DISABLE_AVAILABILITY` (which causes +the above macro to be defined) wherever newer C++ features are needed works +fine because we ship our own libcxx. In this case however, the required symbols +(`___cxa_init_primary_exception` etc.) is in libcxxabi, which we intentionally +don't ship ourselves. + +Therefore, we must disable this feature unconditionally, at least until our +macOS baseline is >=15.0, as we rely on the libcxxabi shipped by the system. + +See also https://github.com/llvm/llvm-project/issues/77653 & https://github.com/llvm/llvm-project/issues/86077 --- libcxx/include/__availability | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch b/recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch new file mode 100644 index 00000000..f424c4ea --- /dev/null +++ b/recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch @@ -0,0 +1,53 @@ +From 6a49c1d89912796cd7ea3f4a9e3eb606ca553257 Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Sun, 26 May 2024 13:01:28 +1100 +Subject: [PATCH 5/5] Work around stray `-nostdlib++` flags causing errors with + C compiler + +--- + libunwind/cmake/config-ix.cmake | 7 +++++-- + libunwind/src/CMakeLists.txt | 6 ++++-- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/libunwind/cmake/config-ix.cmake b/libunwind/cmake/config-ix.cmake +index 126c872f0d48..ab9ea1d5ce01 100644 +--- a/libunwind/cmake/config-ix.cmake ++++ b/libunwind/cmake/config-ix.cmake +@@ -120,8 +120,11 @@ if(FUCHSIA) + set(LIBUNWIND_HAS_DL_LIB NO) + set(LIBUNWIND_HAS_PTHREAD_LIB NO) + else() +- check_library_exists(dl dladdr "" LIBUNWIND_HAS_DL_LIB) +- check_library_exists(pthread pthread_once "" LIBUNWIND_HAS_PTHREAD_LIB) ++ # misdetected due to https://github.com/llvm/llvm-project/issues/90332 ++ # check_library_exists(dl dladdr "" LIBUNWIND_HAS_DL_LIB) ++ # check_library_exists(pthread pthread_once "" LIBUNWIND_HAS_PTHREAD_LIB) ++ set(LIBUNWIND_HAS_DL_LIB YES) ++ set(LIBUNWIND_HAS_PTHREAD_LIB YES) + endif() + + if(HAIKU) +diff --git a/libunwind/src/CMakeLists.txt b/libunwind/src/CMakeLists.txt +index 780430ba70ba..8f53719d4007 100644 +--- a/libunwind/src/CMakeLists.txt ++++ b/libunwind/src/CMakeLists.txt +@@ -168,7 +168,8 @@ if (LIBUNWIND_ENABLE_SHARED) + set_target_properties(unwind_shared + PROPERTIES + LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" +- LINKER_LANGUAGE C ++ # changed from C due to https://github.com/llvm/llvm-project/issues/90332 ++ LINKER_LANGUAGE CXX + OUTPUT_NAME "${LIBUNWIND_SHARED_OUTPUT_NAME}" + VERSION "1.0" + SOVERSION "1" +@@ -214,7 +215,8 @@ if (LIBUNWIND_ENABLE_STATIC) + set_target_properties(unwind_static + PROPERTIES + LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" +- LINKER_LANGUAGE C ++ # changed from C due to https://github.com/llvm/llvm-project/issues/90332 ++ LINKER_LANGUAGE CXX + OUTPUT_NAME "${LIBUNWIND_STATIC_OUTPUT_NAME}" + ) + diff --git a/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch b/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch deleted file mode 100644 index 3fc45567..00000000 --- a/recipe/patches/0006-set-CXX-as-language-for-libunwind-to-avoid-running-i.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7d1809e27c49dadf14b791cdc93a1ea58a2d8def Mon Sep 17 00:00:00 2001 -From: "H. Vetinari" -Date: Sun, 26 May 2024 13:01:28 +1100 -Subject: [PATCH 6/7] set CXX as language for libunwind to avoid running into - unknown flags for CC - ---- - libunwind/src/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libunwind/src/CMakeLists.txt b/libunwind/src/CMakeLists.txt -index 780430ba70ba..2cf2c8c0f1f7 100644 ---- a/libunwind/src/CMakeLists.txt -+++ b/libunwind/src/CMakeLists.txt -@@ -168,7 +168,7 @@ if (LIBUNWIND_ENABLE_SHARED) - set_target_properties(unwind_shared - PROPERTIES - LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" -- LINKER_LANGUAGE C -+ LINKER_LANGUAGE CXX - OUTPUT_NAME "${LIBUNWIND_SHARED_OUTPUT_NAME}" - VERSION "1.0" - SOVERSION "1" -@@ -214,7 +214,7 @@ if (LIBUNWIND_ENABLE_STATIC) - set_target_properties(unwind_static - PROPERTIES - LINK_FLAGS "${LIBUNWIND_LINK_FLAGS}" -- LINKER_LANGUAGE C -+ LINKER_LANGUAGE CXX - OUTPUT_NAME "${LIBUNWIND_STATIC_OUTPUT_NAME}" - ) - diff --git a/recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch b/recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch deleted file mode 100644 index e8e9e636..00000000 --- a/recipe/patches/0007-avoid-misdetection-of-dl-pthread-on-linux.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8ca66527c9f7930a153ee8be487aa77734277967 Mon Sep 17 00:00:00 2001 -From: "H. Vetinari" -Date: Sun, 26 May 2024 15:35:03 +1100 -Subject: [PATCH 7/7] avoid misdetection of dl/pthread on linux - ---- - libunwind/cmake/config-ix.cmake | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libunwind/cmake/config-ix.cmake b/libunwind/cmake/config-ix.cmake -index 126c872f0d48..7b5ff47ac011 100644 ---- a/libunwind/cmake/config-ix.cmake -+++ b/libunwind/cmake/config-ix.cmake -@@ -120,8 +120,8 @@ if(FUCHSIA) - set(LIBUNWIND_HAS_DL_LIB NO) - set(LIBUNWIND_HAS_PTHREAD_LIB NO) - else() -- check_library_exists(dl dladdr "" LIBUNWIND_HAS_DL_LIB) -- check_library_exists(pthread pthread_once "" LIBUNWIND_HAS_PTHREAD_LIB) -+ set(LIBUNWIND_HAS_DL_LIB YES) -+ set(LIBUNWIND_HAS_PTHREAD_LIB YES) - endif() - - if(HAIKU) From 6777c33a3ba3af156127b86fb557248009978f52 Mon Sep 17 00:00:00 2001 From: Julien Jerphanion Date: Tue, 23 Jul 2024 10:24:25 +0200 Subject: [PATCH 47/55] Link against the system's libunwind See: https://libcxx.llvm.org/ReleaseNotes/18.html#build-system-changes Signed-off-by: Julien Jerphanion --- recipe/build.sh | 2 ++ recipe/meta.yaml | 19 +------------------ 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index cbcad3f5..903d18e8 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -26,6 +26,8 @@ cmake -G Ninja \ -DLIBCXX_INCLUDE_DOCS=OFF \ -DLIBCXX_INCLUDE_TESTS=OFF \ -DLIBCXX_HARDENING_MODE="fast" \ + -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \ + -DCOMPILER_RT_USE_LLVM_UNWINDER=OFF \ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \ $CMAKE_ARGS \ $CMAKE_EXTRA_ARGS diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 82cf2ba4..6668921b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -22,7 +22,7 @@ source: - patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch build: - number: 0 + number: 1 skip: true # [win] skip: true # [ppc64le or aarch64] ignore_run_exports: @@ -122,27 +122,10 @@ outputs: build: # for run-exports - {{ stdlib('c') }} - run: - - {{ pin_subpackage("libunwind", exact=True) }} # [linux] test: commands: - test -f $PREFIX/lib/libc++abi.so # [linux] - - name: libunwind - build: - skip: true # [not linux] - files: - - lib/libunwind.* - requirements: - build: - # for run-exports - - {{ stdlib('c') }} - run_constrained: - - libcxx {{ version }}.* - test: - commands: - - test -f $PREFIX/lib/libunwind.so # [linux] - about: home: http://libcxx.llvm.org/ license: Apache-2.0 WITH LLVM-exception From 1c26550e08b772d4f7785d64139e03e32eeb05f2 Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 08:29:27 +0000 Subject: [PATCH 48/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.37.1, and conda-forge-pinning 2024.07.22.16.24.15 --- .scripts/build_steps.sh | 1 - README.md | 16 ++++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) 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/README.md b/README.md index 8e40fe09..2dde2db5 100644 --- a/README.md +++ b/README.md @@ -82,14 +82,14 @@ Current release info Installing libcxx ================= -Installing `libcxx` from the `conda-forge/label/libcxx_macos_lt_12` channel can be achieved by adding `conda-forge/label/libcxx_macos_lt_12` to your channels with: +Installing `libcxx` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` -conda config --add channels conda-forge/label/libcxx_macos_lt_12 +conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge/label/libcxx_macos_lt_12` channel has been enabled, `libcxx, libcxxabi` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `libcxx, libcxxabi` can be installed with `conda`: ``` conda install libcxx libcxxabi @@ -104,26 +104,26 @@ mamba install libcxx libcxxabi It is possible to list all of the versions of `libcxx` available on your platform with `conda`: ``` -conda search libcxx --channel conda-forge/label/libcxx_macos_lt_12 +conda search libcxx --channel conda-forge ``` or with `mamba`: ``` -mamba search libcxx --channel conda-forge/label/libcxx_macos_lt_12 +mamba search libcxx --channel conda-forge ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libcxx --channel conda-forge/label/libcxx_macos_lt_12 +mamba repoquery search libcxx --channel conda-forge # List packages depending on `libcxx`: -mamba repoquery whoneeds libcxx --channel conda-forge/label/libcxx_macos_lt_12 +mamba repoquery whoneeds libcxx --channel conda-forge # List dependencies of `libcxx`: -mamba repoquery depends libcxx --channel conda-forge/label/libcxx_macos_lt_12 +mamba repoquery depends libcxx --channel conda-forge ``` From dd0bfc19c3cc3c67b8c7171ea8c78c8a04d482f9 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 23 Jul 2024 20:10:13 +1100 Subject: [PATCH 49/55] update patch for pthreads workaround; drop legacy patch --- recipe/meta.yaml | 9 ++--- ...1-Fix-ABI-compatibility-with-system.patch} | 4 +- ...001-Support-legacy-standalone-builds.patch | 37 ------------------- ...02-custom-error-message-for-old-sdk.patch} | 4 +- ...VAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch} | 4 +- ...-nostdlib-flags-causing-errors-with.patch} | 25 +++++++++++-- 6 files changed, 32 insertions(+), 51 deletions(-) rename recipe/patches/{0002-Fix-ABI-compatibility-with-system.patch => 0001-Fix-ABI-compatibility-with-system.patch} (95%) delete mode 100644 recipe/patches/0001-Support-legacy-standalone-builds.patch rename recipe/patches/{0003-custom-error-message-for-old-sdk.patch => 0002-custom-error-message-for-old-sdk.patch} (97%) rename recipe/patches/{0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch => 0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch} (92%) rename recipe/patches/{0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch => 0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch} (63%) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 6668921b..9316c4f7 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,14 +12,13 @@ source: - url: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-{{ version.replace(".rc", "-rc") }}.tar.gz sha256: 09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856 patches: - - patches/0001-Support-legacy-standalone-builds.patch # See https://discourse.llvm.org/t/shipping-custom-libc-on-macos/58606 - - patches/0002-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] - - patches/0003-custom-error-message-for-old-sdk.patch + - patches/0001-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] + - patches/0002-custom-error-message-for-old-sdk.patch # disable feature that requires up-to-date libcxxabi, which we don't ship - - patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch + - patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch # work around https://github.com/llvm/llvm-project/issues/90332 - - patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch + - patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch build: number: 1 diff --git a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0001-Fix-ABI-compatibility-with-system.patch similarity index 95% rename from recipe/patches/0002-Fix-ABI-compatibility-with-system.patch rename to recipe/patches/0001-Fix-ABI-compatibility-with-system.patch index abd02b29..41702b9a 100644 --- a/recipe/patches/0002-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0001-Fix-ABI-compatibility-with-system.patch @@ -1,7 +1,7 @@ -From b1113a136e91b0788e2fa28e578142e45016eae9 Mon Sep 17 00:00:00 2001 +From b461291f007bc7457a5a7f7219cd0943b8e7ba3d Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 -Subject: [PATCH 2/5] Fix ABI compatibility with system +Subject: [PATCH 1/4] Fix ABI compatibility with system --- libcxx/src/locale.cpp | 16 ++++++++-------- diff --git a/recipe/patches/0001-Support-legacy-standalone-builds.patch b/recipe/patches/0001-Support-legacy-standalone-builds.patch deleted file mode 100644 index 8914f94e..00000000 --- a/recipe/patches/0001-Support-legacy-standalone-builds.patch +++ /dev/null @@ -1,37 +0,0 @@ -From bf0dac8954fed53dcc579ccf564dd011e11616b2 Mon Sep 17 00:00:00 2001 -From: Isuru Fernando -Date: Tue, 18 May 2021 19:51:28 -0500 -Subject: [PATCH 1/5] Support legacy standalone builds - ---- - libcxx/src/CMakeLists.txt | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt -index 1b80625304a4..b1d581eb5de4 100644 ---- a/libcxx/src/CMakeLists.txt -+++ b/libcxx/src/CMakeLists.txt -@@ -244,6 +244,23 @@ if (LIBCXX_ENABLE_SHARED) - "-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp") - - target_link_libraries(cxx_shared PRIVATE $) -+ function(reexport_symbols file) -+ target_link_libraries(cxx_shared PRIVATE "-Wl,-reexported_symbols_list,${file}") -+ endfunction() -+ -+ if (LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS) -+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../../libcxxabi/lib/new-delete.exp") -+ endif() -+ -+ if (LIBCXX_ENABLE_EXCEPTIONS) -+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../../libcxxabi/lib/exceptions.exp") -+ -+ if ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "^(armv6|armv7|armv7s)$") -+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../../libcxxabi/lib/personality-sjlj.exp") -+ else() -+ reexport_symbols("${CMAKE_CURRENT_SOURCE_DIR}/../../libcxxabi/lib/personality-v0.exp") -+ endif() -+ endif() - endif() - - # Generate a linker script in place of a libc++.so symlink. diff --git a/recipe/patches/0003-custom-error-message-for-old-sdk.patch b/recipe/patches/0002-custom-error-message-for-old-sdk.patch similarity index 97% rename from recipe/patches/0003-custom-error-message-for-old-sdk.patch rename to recipe/patches/0002-custom-error-message-for-old-sdk.patch index 987b89b6..5a489585 100644 --- a/recipe/patches/0003-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0002-custom-error-message-for-old-sdk.patch @@ -1,7 +1,7 @@ -From 7e2722ee435b20f9445be40ace0f5298126ae23c Mon Sep 17 00:00:00 2001 +From bacfd686f6d24164b4c6bbdc8cdf022740106991 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 -Subject: [PATCH 3/5] custom error message for old sdk +Subject: [PATCH 2/4] custom error message for old sdk Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch b/recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch similarity index 92% rename from recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch rename to recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch index eef2403d..85774d2f 100644 --- a/recipe/patches/0005-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch +++ b/recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch @@ -1,7 +1,7 @@ -From 4744d322ef96d67b8543897b49ec8897d2633a1a Mon Sep 17 00:00:00 2001 +From b696d088e01cfa8b3e7dd226342ca37bd8c95621 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 22:04:04 +1100 -Subject: [PATCH 4/5] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION +Subject: [PATCH 3/4] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION unconditionally When _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS is not defined, things diff --git a/recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch b/recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch similarity index 63% rename from recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch rename to recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch index f424c4ea..6527e1f3 100644 --- a/recipe/patches/0006-Work-around-stray-nostdlib-flags-causing-errors-with.patch +++ b/recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch @@ -1,14 +1,33 @@ -From 6a49c1d89912796cd7ea3f4a9e3eb606ca553257 Mon Sep 17 00:00:00 2001 +From 46bea2a31254d1d997c220685742f68f02f1f351 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 13:01:28 +1100 -Subject: [PATCH 5/5] Work around stray `-nostdlib++` flags causing errors with +Subject: [PATCH 4/4] Work around stray `-nostdlib++` flags causing errors with C compiler --- + libcxxabi/cmake/config-ix.cmake | 7 +++++-- libunwind/cmake/config-ix.cmake | 7 +++++-- libunwind/src/CMakeLists.txt | 6 ++++-- - 2 files changed, 9 insertions(+), 4 deletions(-) + 3 files changed, 14 insertions(+), 6 deletions(-) +diff --git a/libcxxabi/cmake/config-ix.cmake b/libcxxabi/cmake/config-ix.cmake +index 10f2087c68c5..c0e58f8b255c 100644 +--- a/libcxxabi/cmake/config-ix.cmake ++++ b/libcxxabi/cmake/config-ix.cmake +@@ -106,8 +106,11 @@ elseif(ANDROID) + check_library_exists(c __cxa_thread_atexit_impl "" + LIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL) + else() +- check_library_exists(dl dladdr "" LIBCXXABI_HAS_DL_LIB) +- check_library_exists(pthread pthread_once "" LIBCXXABI_HAS_PTHREAD_LIB) ++ # misdetected due to https://github.com/llvm/llvm-project/issues/90332 ++ # check_library_exists(dl dladdr "" LIBCXXABI_HAS_DL_LIB) ++ # check_library_exists(pthread pthread_once "" LIBCXXABI_HAS_PTHREAD_LIB) ++ set(LIBCXXABI_HAS_DL_LIB YES) ++ set(LIBCXXABI_HAS_PTHREAD_LIB YES) + check_library_exists(c __cxa_thread_atexit_impl "" + LIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL) + endif() diff --git a/libunwind/cmake/config-ix.cmake b/libunwind/cmake/config-ix.cmake index 126c872f0d48..ab9ea1d5ce01 100644 --- a/libunwind/cmake/config-ix.cmake From b9b94fb8c69a865c22932cb24c97b1a5c244d17c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 28 Jul 2024 14:54:52 +1100 Subject: [PATCH 50/55] Revert "remove rc-channel sources & targets" This reverts commit 8843e25796e6168b4c04aa89767d59c70b692705. --- recipe/conda_build_config.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 4bc04298..58498bb6 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -3,6 +3,12 @@ c_compiler: # [osx] cxx_compiler: # [osx] - clang_bootstrap # [osx] +channel_targets: + - conda-forge llvm_rc + +channel_sources: + - conda-forge/label/llvm_rc,conda-forge + # libcxx only supports the last released GCC version, see # https://libcxx.llvm.org/index.html#platform-and-compiler-support c_compiler_version: # [unix] From b7e5421e946591ef5b398619b61a44b273dc9d25 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 28 Jul 2024 14:56:02 +1100 Subject: [PATCH 51/55] libcxx v19.1.0.rc1 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 9316c4f7..0faece15 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "18.1.8" %} +{% set version = "19.1.0.rc1" %} {% if sys_abi is undefined %} {% set sys_abi = "dummy" %} @@ -10,7 +10,7 @@ package: source: - url: https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-{{ version.replace(".rc", "-rc") }}.tar.gz - sha256: 09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856 + sha256: cd3b42caf8e78c497712a661303672c1a6279eb1a5ff8735488087319ab95214 patches: # See https://discourse.llvm.org/t/shipping-custom-libc-on-macos/58606 - patches/0001-Fix-ABI-compatibility-with-system.patch # [sys_abi == "pre-12"] @@ -21,7 +21,7 @@ source: - patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch build: - number: 1 + number: 0 skip: true # [win] skip: true # [ppc64le or aarch64] ignore_run_exports: From fd137ee9f055d4b621e118fbd89c80f5a473d5fd Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 28 Jul 2024 14:59:00 +1100 Subject: [PATCH 52/55] rebase patches --- ...01-Fix-ABI-compatibility-with-system.patch | 12 +- ...002-custom-error-message-for-old-sdk.patch | 131 ++++++++++++------ ...AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch | 26 ++-- ...y-nostdlib-flags-causing-errors-with.patch | 2 +- 4 files changed, 107 insertions(+), 64 deletions(-) diff --git a/recipe/patches/0001-Fix-ABI-compatibility-with-system.patch b/recipe/patches/0001-Fix-ABI-compatibility-with-system.patch index 41702b9a..f3b14cc6 100644 --- a/recipe/patches/0001-Fix-ABI-compatibility-with-system.patch +++ b/recipe/patches/0001-Fix-ABI-compatibility-with-system.patch @@ -1,4 +1,4 @@ -From b461291f007bc7457a5a7f7219cd0943b8e7ba3d Mon Sep 17 00:00:00 2001 +From bf8c76c5be4a6923267959f629650d375ffe1fb5 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Tue, 13 Jul 2021 01:57:06 -0500 Subject: [PATCH 1/4] Fix ABI compatibility with system @@ -8,10 +8,10 @@ Subject: [PATCH 1/4] Fix ABI compatibility with system 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp -index 73b24dbf595a..6a69d6fa2855 100644 +index 4efdc63c0966..812d1a386096 100644 --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp -@@ -176,10 +176,6 @@ locale::__imp::__imp(size_t refs) : facet(refs), facets_(N), name_("C") { +@@ -174,10 +174,6 @@ locale::__imp::__imp(size_t refs) : facet(refs), facets_(N), name_("C") { install(&make >(1u)); install(&make >(1u)); _LIBCPP_SUPPRESS_DEPRECATED_POP @@ -22,7 +22,7 @@ index 73b24dbf595a..6a69d6fa2855 100644 install(&make >(1u)); #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS install(&make >(1u)); -@@ -218,6 +214,10 @@ locale::__imp::__imp(size_t refs) : facet(refs), facets_(N), name_("C") { +@@ -216,6 +212,10 @@ locale::__imp::__imp(size_t refs) : facet(refs), facets_(N), name_("C") { #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS install(&make >(1u)); #endif @@ -33,7 +33,7 @@ index 73b24dbf595a..6a69d6fa2855 100644 } locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), name_(name) { -@@ -244,10 +244,6 @@ locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), +@@ -242,10 +242,6 @@ locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), install(new codecvt_byname(name_)); install(new codecvt_byname(name_)); _LIBCPP_SUPPRESS_DEPRECATED_POP @@ -44,7 +44,7 @@ index 73b24dbf595a..6a69d6fa2855 100644 install(new numpunct_byname(name_)); #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS install(new numpunct_byname(name_)); -@@ -270,6 +266,10 @@ locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), +@@ -268,6 +264,10 @@ locale::__imp::__imp(const string& name, size_t refs) : facet(refs), facets_(N), #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS install(new messages_byname(name_)); #endif diff --git a/recipe/patches/0002-custom-error-message-for-old-sdk.patch b/recipe/patches/0002-custom-error-message-for-old-sdk.patch index 5a489585..03b2e7b3 100644 --- a/recipe/patches/0002-custom-error-message-for-old-sdk.patch +++ b/recipe/patches/0002-custom-error-message-for-old-sdk.patch @@ -1,57 +1,98 @@ -From bacfd686f6d24164b4c6bbdc8cdf022740106991 Mon Sep 17 00:00:00 2001 +From 7a6b8cee3b11db797a01eb2bdd9a0e4c31bf6aca Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Wed, 29 Dec 2021 19:28:35 -0800 Subject: [PATCH 2/4] custom error message for old sdk Co-Authored-By: H. Vetinari --- - libcxx/include/__availability | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) + libcxx/include/__configuration/availability.h | 20 +++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) -diff --git a/libcxx/include/__availability b/libcxx/include/__availability -index b8b2da9bb122..59fafbbee393 100644 ---- a/libcxx/include/__availability -+++ b/libcxx/include/__availability -@@ -188,13 +188,13 @@ - # define _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY 1 +diff --git a/libcxx/include/__configuration/availability.h b/libcxx/include/__configuration/availability.h +index ab483a07c9c1..70de9989b457 100644 +--- a/libcxx/include/__configuration/availability.h ++++ b/libcxx/include/__configuration/availability.h +@@ -135,12 +135,12 @@ + // LLVM 19 + // TODO: Fill this in + # define _LIBCPP_INTRODUCED_IN_LLVM_19 0 +-# define _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE __attribute__((unavailable)) ++# define _LIBCPP_INTRODUCED_IN_LLVM_19_ATTRIBUTE __attribute__((macos, strict, introduced = 15.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk")) + + // LLVM 18 + // TODO: Fill this in + # define _LIBCPP_INTRODUCED_IN_LLVM_18 0 +-# define _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE __attribute__((unavailable)) ++# define _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE __attribute__((macos, strict, introduced = 15.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk")) + + // LLVM 17 + # if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 140400) || \ +@@ -152,7 +152,7 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_17 1 # endif - # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY \ -- __attribute__((availability(macos, strict, introduced = 10.15))) \ -+ __attribute__((availability(macos, strict, introduced = 10.15, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios, strict, introduced = 13.0))) \ - __attribute__((availability(tvos, strict, introduced = 13.0))) \ - __attribute__((availability(watchos, strict, introduced = 6.0))) - // clang-format off - # define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH \ -- _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15))), apply_to=any(function,record))") \ -+ _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15,message=\"see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk\"))), apply_to=any(function,record))") \ - _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \ - _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \ - _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))") -@@ -217,7 +217,7 @@ - # define _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT 1 + # define _LIBCPP_INTRODUCED_IN_LLVM_17_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 14.4))) \ ++ __attribute__((availability(macos, strict, introduced = 14.4, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 17.4))) \ + __attribute__((availability(tvos, strict, introduced = 17.4))) \ + __attribute__((availability(watchos, strict, introduced = 10.4))) +@@ -167,7 +167,7 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_16 1 + # endif + # define _LIBCPP_INTRODUCED_IN_LLVM_16_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 14.0))) \ ++ __attribute__((availability(macos, strict, introduced = 14.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 17.0))) \ + __attribute__((availability(tvos, strict, introduced = 17.0))) \ + __attribute__((availability(watchos, strict, introduced = 10.0))) +@@ -182,7 +182,7 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_15 1 + # endif + # define _LIBCPP_INTRODUCED_IN_LLVM_15_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 13.4))) \ ++ __attribute__((availability(macos, strict, introduced = 13.4, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 16.5))) \ + __attribute__((availability(tvos, strict, introduced = 16.5))) \ + __attribute__((availability(watchos, strict, introduced = 9.5))) +@@ -201,7 +201,7 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_13 1 # endif - # define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT \ -- __attribute__((availability(macos, strict, introduced = 13.3))) \ -+ __attribute__((availability(macos, strict, introduced = 13.3, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios, strict, introduced = 16.3))) \ - __attribute__((availability(tvos, strict, introduced = 16.3))) \ - __attribute__((availability(watchos, strict, introduced = 9.3))) -@@ -234,7 +234,7 @@ - # define _LIBCPP_AVAILABILITY_HAS_SYNC 1 + # define _LIBCPP_INTRODUCED_IN_LLVM_13_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 13.0))) \ ++ __attribute__((availability(macos, strict, introduced = 13.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 16.0))) \ + __attribute__((availability(tvos, strict, introduced = 16.0))) \ + __attribute__((availability(watchos, strict, introduced = 9.0))) +@@ -216,7 +216,7 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_12 1 # endif - # define _LIBCPP_AVAILABILITY_SYNC \ -- __attribute__((availability(macos, strict, introduced = 11.0))) \ + # define _LIBCPP_INTRODUCED_IN_LLVM_12_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 12.3))) \ ++ __attribute__((availability(macos, strict, introduced = 12.3, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 15.3))) \ + __attribute__((availability(tvos, strict, introduced = 15.3))) \ + __attribute__((availability(watchos, strict, introduced = 8.3))) +@@ -231,7 +231,7 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_11 1 + # endif + # define _LIBCPP_INTRODUCED_IN_LLVM_11_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 11.0))) \ + __attribute__((availability(macos, strict, introduced = 11.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios, strict, introduced = 14.0))) \ - __attribute__((availability(tvos, strict, introduced = 14.0))) \ + __attribute__((availability(ios, strict, introduced = 14.0))) \ + __attribute__((availability(tvos, strict, introduced = 14.0))) \ __attribute__((availability(watchos, strict, introduced = 7.0))) -@@ -262,7 +262,7 @@ - // use availability annotations until that bug has been fixed. - # if 0 - # define _LIBCPP_AVAILABILITY_PMR \ -- __attribute__((availability(macos, strict, introduced = 14.0))) \ -+ __attribute__((availability(macos, strict, introduced = 14.0, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ - __attribute__((availability(ios, strict, introduced = 17.0))) \ - __attribute__((availability(tvos, strict, introduced = 17.0))) \ - __attribute__((availability(watchos, strict, introduced = 10.0))) +@@ -250,12 +250,12 @@ + # define _LIBCPP_INTRODUCED_IN_LLVM_9 1 + # endif + # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE \ +- __attribute__((availability(macos, strict, introduced = 10.15))) \ ++ __attribute__((availability(macos, strict, introduced = 10.15, message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \ + __attribute__((availability(ios, strict, introduced = 13.0))) \ + __attribute__((availability(tvos, strict, introduced = 13.0))) \ + __attribute__((availability(watchos, strict, introduced = 6.0))) + # define _LIBCPP_INTRODUCED_IN_LLVM_9_ATTRIBUTE_PUSH \ +- _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15))), apply_to=any(function,record))") \ ++ _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15,message=\"see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk\"))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \ + _Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))") diff --git a/recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch b/recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch index 85774d2f..d9421784 100644 --- a/recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch +++ b/recipe/patches/0003-disable-_LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPT.patch @@ -1,4 +1,4 @@ -From b696d088e01cfa8b3e7dd226342ca37bd8c95621 Mon Sep 17 00:00:00 2001 +From 1fa872f42eb17226d5f37425f393c72bc12cfc92 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 22:04:04 +1100 Subject: [PATCH 3/4] disable _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION @@ -18,19 +18,21 @@ macOS baseline is >=15.0, as we rely on the libcxxabi shipped by the system. See also https://github.com/llvm/llvm-project/issues/77653 & https://github.com/llvm/llvm-project/issues/86077 --- - libcxx/include/__availability | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + libcxx/include/__configuration/availability.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/libcxx/include/__availability b/libcxx/include/__availability -index 59fafbbee393..50dab515d2a7 100644 ---- a/libcxx/include/__availability -+++ b/libcxx/include/__availability -@@ -103,7 +103,7 @@ +diff --git a/libcxx/include/__configuration/availability.h b/libcxx/include/__configuration/availability.h +index 70de9989b457..bbcb17a910aa 100644 +--- a/libcxx/include/__configuration/availability.h ++++ b/libcxx/include/__configuration/availability.h +@@ -352,8 +352,8 @@ // These macros controls the availability of __cxa_init_primary_exception // in the built library, which std::make_exception_ptr might use // (see libcxx/include/__exception/exception_ptr.h). --# define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 1 -+# define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 0 - # define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION +-#define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION _LIBCPP_INTRODUCED_IN_LLVM_18 +-#define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION _LIBCPP_INTRODUCED_IN_LLVM_18_ATTRIBUTE ++#define _LIBCPP_AVAILABILITY_HAS_INIT_PRIMARY_EXCEPTION 0 ++#define _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION /* nothing */ - // These macros control the availability of all parts of that + // This controls the availability of C++23 , which + // has a dependency on the built library (it needs access to diff --git a/recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch b/recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch index 6527e1f3..8469a732 100644 --- a/recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch +++ b/recipe/patches/0004-Work-around-stray-nostdlib-flags-causing-errors-with.patch @@ -1,4 +1,4 @@ -From 46bea2a31254d1d997c220685742f68f02f1f351 Mon Sep 17 00:00:00 2001 +From 2ff612a0e19739e0523c98f6580a09c4dbd6bd73 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 26 May 2024 13:01:28 +1100 Subject: [PATCH 4/4] Work around stray `-nostdlib++` flags causing errors with From 5b33088ed2b639f4d5366c90991fb8a70ac5b6d2 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 28 Jul 2024 15:00:19 +1100 Subject: [PATCH 53/55] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.37.1, and conda-forge-pinning 2024.07.26.18.03.15 --- .ci_support/linux_64_.yaml | 4 ++-- ...da-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 2 +- ...el_targetsconda-forge_mainsys_abipost-12.yaml | 2 +- ...da-forge_libcxx_macos_lt_12sys_abipre-12.yaml | 2 +- ...el_targetsconda-forge_mainsys_abipost-12.yaml | 2 +- README.md | 16 ++++++++-------- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 49fab456..664d5cec 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -5,9 +5,9 @@ c_stdlib_version: cdt_name: - cos7 channel_sources: -- conda-forge +- conda-forge/label/llvm_rc,conda-forge channel_targets: -- conda-forge main +- conda-forge llvm_rc cxx_compiler: - gxx cxx_compiler_version: diff --git a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 5d268f2e..e5ecf96b 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '10.13' channel_sources: -- conda-forge +- conda-forge/label/llvm_rc,conda-forge channel_targets: - conda-forge libcxx_macos_lt_12 cxx_compiler: diff --git a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml index f2d72f7d..97fb86c2 100644 --- a/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '10.13' channel_sources: -- conda-forge +- conda-forge/label/llvm_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml index 5aef6d33..ae9f8b6f 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_libcxx_macos_lt_12sys_abipre-12.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/llvm_rc,conda-forge channel_targets: - conda-forge libcxx_macos_lt_12 cxx_compiler: diff --git a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml index d6d338cb..d0571168 100644 --- a/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml +++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainsys_abipost-12.yaml @@ -7,7 +7,7 @@ c_stdlib: c_stdlib_version: - '11.0' channel_sources: -- conda-forge +- conda-forge/label/llvm_rc,conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/README.md b/README.md index 2dde2db5..e1657f6a 100644 --- a/README.md +++ b/README.md @@ -82,14 +82,14 @@ Current release info Installing libcxx ================= -Installing `libcxx` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `libcxx` from the `conda-forge/label/llvm_rc` channel can be achieved by adding `conda-forge/label/llvm_rc` to your channels with: ``` -conda config --add channels conda-forge +conda config --add channels conda-forge/label/llvm_rc conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libcxx, libcxxabi` can be installed with `conda`: +Once the `conda-forge/label/llvm_rc` channel has been enabled, `libcxx, libcxxabi` can be installed with `conda`: ``` conda install libcxx libcxxabi @@ -104,26 +104,26 @@ mamba install libcxx libcxxabi It is possible to list all of the versions of `libcxx` available on your platform with `conda`: ``` -conda search libcxx --channel conda-forge +conda search libcxx --channel conda-forge/label/llvm_rc ``` or with `mamba`: ``` -mamba search libcxx --channel conda-forge +mamba search libcxx --channel conda-forge/label/llvm_rc ``` Alternatively, `mamba repoquery` may provide more information: ``` # Search all versions available on your platform: -mamba repoquery search libcxx --channel conda-forge +mamba repoquery search libcxx --channel conda-forge/label/llvm_rc # List packages depending on `libcxx`: -mamba repoquery whoneeds libcxx --channel conda-forge +mamba repoquery whoneeds libcxx --channel conda-forge/label/llvm_rc # List dependencies of `libcxx`: -mamba repoquery depends libcxx --channel conda-forge +mamba repoquery depends libcxx --channel conda-forge/label/llvm_rc ``` From b2d34215306901b6e13699ae0a712dcee276fc0c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 28 Jul 2024 22:03:58 +1100 Subject: [PATCH 54/55] use GCC 14 on linux --- .ci_support/linux_64_.yaml | 2 +- recipe/conda_build_config.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 664d5cec..77a691e8 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '13' +- '14' docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 target_platform: diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 58498bb6..18186de6 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -12,10 +12,10 @@ channel_sources: # libcxx only supports the last released GCC version, see # https://libcxx.llvm.org/index.html#platform-and-compiler-support c_compiler_version: # [unix] - - 13 # [linux] + - 14 # [linux] - "*" # [osx] cxx_compiler_version: # [unix] - - 13 # [linux] + - 14 # [linux] - "*" # [osx] # we want different hashes between osx-64 & osx-arm From e3a62af05cfa830e2b6a68b038f11bd0f3001c7f Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 28 Jul 2024 22:06:25 +1100 Subject: [PATCH 55/55] drop clang 15 testing --- recipe/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 0faece15..bbd46ecb 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -109,7 +109,6 @@ outputs: - libcxx-testing 0.18 # [osx] - libcxx-testing 0.17 # [osx] - libcxx-testing 0.16 # [osx] - - libcxx-testing 0.15 # [osx] {% endif %} - name: libcxxabi