conda-forge/conda-forge.github.io

MacOSX11.0.sdk missing some symlink files for AMD64 arch mac

Opened this issue · 2 comments

Conda-forge documentation

  • I could not solve my problem using the conda-forge documentation.

Installed packages

N/A

Environment info

N/A

Issue

I'm trying to build ambertools https://github.com/conda-forge/ambertools-feedstock locally on a M1 mac.
Where the compiling succeeded but the linking failed.

Traceback (most recent call last):
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/bin/conda-build", line 11, in <module>
    sys.exit(execute())
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/cli/main_build.py", line 590, in execute
    api.build(
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/api.py", line 250, in build
    return build_tree(
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/build.py", line 3638, in build_tree
    packages_from_this = build(
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/build.py", line 2711, in build
    newly_built_packages = bundlers[pkg_type](output_d, m, env, stats)
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/build.py", line 1850, in bundle_conda
    files = post_process_files(metadata, initial_files)
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/build.py", line 1664, in post_process_files
    post_build(m, new_files, build_python=python)
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/post.py", line 1728, in post_build
    check_overlinking(m, files, host_prefix)
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/post.py", line 1553, in check_overlinking
    return check_overlinking_impl(
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/miniforge3/lib/python3.10/site-packages/conda_build/post.py", line 1380, in check_overlinking_impl
    with open(os.path.join(sysroot, f), "rb") as tbd_fh:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/zhiyiwu/GitHub/ambertools-feedstock/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/vImage.tbd'
Traceback (most recent call last):
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/build-locally.py", line 106, in <module>
    main()
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/build-locally.py", line 96, in main
    run_osx_build(ns)
  File "/Users/zhiyiwu/GitHub/ambertools-feedstock/build-locally.py", line 34, in run_osx_build
    subprocess.check_call([script])
  File "/Users/zhiyiwu/miniconda3/lib/python3.12/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['.scripts/run_osx_build.sh']' returned non-zero exit status 1.

Upon checking it seems that in the file /Users/zhiyiwu/GitHub/ambertools-feedstock/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/vImage.tbd is symlink that points to Versions/Current/vImage.tbd, which doesn't exist. However, in the directory /Users/zhiyiwu/GitHub/ambertools-feedstock/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/, Versions/a/vImage.tbd does exist.

I then crossed check the MacOSX11.3.sdk, which seems to include an additional file Versions/Current, which is a symlink that points to Versions/a.

So in the MacOSX11.3.sdk. /Users/zhiyiwu/GitHub/ambertools-feedstock/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/vImage.tbd points to Versions/Current/vImage.tbd, the Versions/Current then points to Versions/a, which then allows one to find the real vImage.tbd.
For MacOSX11.0.sdk, however, the Versions/Current is missing, so the /Users/zhiyiwu/GitHub/ambertools-feedstock/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/vImage.tbd cannot be found.

AFAIK, native compilation for osx-arm64 is not commonly done, and so I wonder if the build_locally.py is properly configured for this.

I think this is not a configuration problem, it is just that MacOSX11.0.sdk is broken. MacOSX11.1.sdk to MacOSX11.3.sdk works.