Skip to content

Commit

Permalink
llvm_null: Test-case for conda-build 3 'exact=True' bug?
Browse files Browse the repository at this point in the history
Ping @msarahan. I will dig into this myself now, but in-case you have time
I'd appreciate your thoughts.

Here we have a simple dependency chain with no cycles:
clang => llvm => llvm-lto-tapi => libcxx-osx_64 => libcxxabi-osx_64

Attempting to build it causes:

```
Attempting to finalize metadata for clang
INFO:conda_build.metadata:Attempting to finalize metadata for clang
Attempting to finalize metadata for libcxxabi_osx-64
INFO:conda_build.metadata:Attempting to finalize metadata for libcxxabi_osx-64
Attempting to finalize metadata for llvm
INFO:conda_build.metadata:Attempting to finalize metadata for llvm
Attempting to finalize metadata for llvm-lto-tapi
INFO:conda_build.metadata:Attempting to finalize metadata for llvm-lto-tapi
Attempting to finalize metadata for libcxx_osx-64
INFO:conda_build.metadata:Attempting to finalize metadata for libcxx_osx-64
Traceback (most recent call last):
  File "/Users/rdonnelly/mc-x64-3.6/bin/conda-build", line 11, in <module>
    load_entry_point('conda-build==3.0.10+1.g9738cd40', 'console_scripts', 'conda-build')()
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/cli/main_build.py", line 387, in main
    execute(sys.argv[1:])
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/cli/main_build.py", line 378, in execute
    noverify=args.no_verify)
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/api.py", line 184, in build
    need_source_download=need_source_download, config=config, variants=variants)
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/build.py", line 1743, in build_tree
    notest=notest,
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/build.py", line 885, in build
    output_metas = expand_outputs([(m, need_source_download, need_reparse_in_env)])
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/render.py", line 501, in expand_outputs
    for (output_dict, m) in _m.get_output_metadata_set(permit_unsatisfiable_variants=False):
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/metadata.py", line 1733, in get_output_metadata_set
    ensure_matching_hashes(conda_packages)
  File "/Users/rdonnelly/mc-x64-3.6/lib/python3.6/site-packages/conda_build/metadata.py", line 279, in ensure_matching_hashes
    "Involved packages were:\n" + error)
conda_build.exceptions.RecipeError: Mismatching hashes in recipe. Exact pins in dependencies that contribute to the hash often cause this. Can you change one or more exact pins to version bound constraints?
Involved packages were:
Mismatching package: llvm; consumer package: clang
```

Interestingly, removing the libcxxabi-osx_64 package avoids this issue.
  • Loading branch information
mingwandroid committed Aug 13, 2017
1 parent 4581473 commit c5305d3
Showing 1 changed file with 10 additions and 54 deletions.
64 changes: 10 additions & 54 deletions cross-compilers/llvm_null/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,70 +1,26 @@
{% set version='1' %}
{% set cross_target_platform='osx-64' %}
{% set cctools_version = '895' %}

package:
name: test-llvm-suite
version: {{ version }}
name: llvm-suite

outputs:
- name: test-llvm-lto-tapi
script: install.sh
requirements:
run:
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform, exact=True) }}

- name: test-cctools
version: {{ cctools_version }}
script: install.sh
- name: clang
requirements:
run:
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform, exact=True) }}
- {{ pin_subpackage('llvm', exact=True) }}

- name: test-llvm
script: install.sh
- name: llvm
requirements:
run:
- {{ pin_subpackage('test-llvm-lto-tapi', exact=True) }}
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform, exact=True) }}
- {{ pin_subpackage('test-cctools', exact=True) }}
- {{ pin_subpackage('llvm-lto-tapi', exact=True) }}

- name: test-clang
script: install.sh
- name: llvm-lto-tapi
requirements:
run:
- {{ pin_subpackage('test-llvm', exact=True) }}
- {{ pin_subpackage('test-compiler-rt_' ~ cross_target_platform, exact=True) }}
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform, exact=True) }}
- {{ pin_subpackage('libcxx_osx-64', exact=True) }}

- name: test-clangxx
script: install.sh
- name: libcxx_osx-64
requirements:
run:
- {{ pin_subpackage('test-clang', exact=True) }}
run_exports:
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform) }}

- name: test-polly
script: install.sh
requirements:
run:
- {{ pin_subpackage('test-llvm', exact=True) }}
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform, exact=True) }}
- {{ pin_subpackage('libcxxabi_osx-64', exact=True) }}

- name: test-libcxx_{{ cross_target_platform }}
script: install.sh
requirements:
run:
- {{ pin_subpackage('test-libcxxabi_' ~ cross_target_platform, exact=True) }}

- name: test-libcxxabi_{{ cross_target_platform }}
script: install.sh

- name: test-libunwind_{{ cross_target_platform }}
script: install.sh
requirements:
run:
- {{ pin_subpackage('test-libcxx_' ~ cross_target_platform, exact=True) }}
- name: libcxxabi_osx-64

- name: test-compiler-rt_{{ cross_target_platform }}
script: install.sh

0 comments on commit c5305d3

Please sign in to comment.