matthew-brett / delocate

Find and copy needed dynamic libraries into python wheels
BSD 2-Clause "Simplified" License
262 stars 59 forks source link

delocate-listdeps failed #154

Open nengxingxu opened 1 year ago

nengxingxu commented 1 year ago

Describe the bug Hi, I use cuibuildwheel to build wheel for apple M1, but it failed。

Platform (please complete the following information):

Additional context

Traceback (most recent call last):
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/bin/delocate-listdeps", line 8, in <module>
    sys.exit(main())
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/cmd/delocate_listdeps.py", line 55, in main
    lib_dict = wheel_libs(path, ignore_missing=True)
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/libsana.py", line 750, in wheel_libs
    lib_dict = tree_libs_from_directory(
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/libsana.py", line 384, in tree_libs_from_directory
    return _tree_libs_from_libraries(
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/libsana.py", line 309, in _tree_libs_from_libraries
    for depending_path, install_name in get_dependencies(
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/libsana.py", line 105, in get_dependencies
    for install_name in get_install_names(lib_fname):
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/tools.py", line 473, in get_install_names
    names_data = _check_ignore_archs(_parse_otool_install_names(otool.stdout))
  File "/private/var/folders/y_/g1bmn6g927zdb243w050r7500000gn/T/cibw-run-0gd_o8fx/cp310-macosx_arm64/build/venv/lib/python3.10/site-packages/delocate/tools.py", line 324, in _check_ignore_archs
    raise NotImplementedError(
NotImplementedError: This function does not support separate values per-architecture: {'x86_64': [('/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon', '2.0.0', '165.0.0'), ('/System/Library/Frameworks/Security.framework/Versions/A/Security', '1.0.0', '60158.100.133'), ('/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation', '300.0.0', '1858.112.0'), ('/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit', '45.0.0', '2113.40.126'), ('/usr/lib/libcurl.4.dylib', '7.0.0', '9.0.0'), ('/usr/lib/libc++.1.dylib', '1.0.0', '1300.23.0'), ('/usr/lib/libiconv.2.dylib', '7.0.0', '7.0.0'), ('/usr/lib/libobjc.A.dylib', '1.0.0', '228.0.0'), ('/usr/lib/libz.1.dylib', '1.0.0', '1.2.11'), ('/usr/lib/libSystem.B.dylib', '1.0.0', '1311.100.3')], 'arm64': [('/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon', '2.0.0', '165.0.0'), ('/System/Library/Frameworks/Security.framework/Versions/A/Security', '1.0.0', '60158.100.133'), ('/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation', '300.0.0', '1858.112.0'), ('/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit', '45.0.0', '2113.40.126'), ('/usr/lib/libcurl.4.dylib', '7.0.0', '9.0.0'), ('/usr/lib/libc++.1.dylib', '1.0.0', '1300.23.0'), ('/usr/lib/libiconv.2.dylib', '7.0.0', '7.0.0'), ('/usr/lib/libobjc.A.dylib', '1.0.0', '228.0.0'), ('/usr/lib/libz.1.dylib', '1.0.0', '1.2.11'), ('/usr/lib/libSystem.B.dylib', '1.0.0', '1311.100.3'), ('/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation', '150.0.0', '1858.112.0'), ('/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics', '64.0.0', '1557.5.4'), ('/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText', '1.0.0', '1.0.0')]}
HexDecimal commented 1 year ago

For clarity: arm64 links to 3 more libraries than x86_64. I'm not experienced enough the explain why.

{
    'x86_64': [
        ('/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon', '2.0.0', '165.0.0'),
        ('/System/Library/Frameworks/Security.framework/Versions/A/Security', '1.0.0', '60158.100.133'),
        ('/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation', '300.0.0', '1858.112.0'),
        ('/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit', '45.0.0', '2113.40.126'),
        ('/usr/lib/libcurl.4.dylib', '7.0.0', '9.0.0'),
        ('/usr/lib/libc++.1.dylib', '1.0.0', '1300.23.0'),
        ('/usr/lib/libiconv.2.dylib', '7.0.0', '7.0.0'),
        ('/usr/lib/libobjc.A.dylib', '1.0.0', '228.0.0'),
        ('/usr/lib/libz.1.dylib', '1.0.0', '1.2.11'),
        ('/usr/lib/libSystem.B.dylib', '1.0.0', '1311.100.3'),
    ],
    'arm64': [
        ('/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon', '2.0.0', '165.0.0'),
        ('/System/Library/Frameworks/Security.framework/Versions/A/Security', '1.0.0', '60158.100.133'),
        ('/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation', '300.0.0', '1858.112.0'),
        ('/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit', '45.0.0', '2113.40.126'),
        ('/usr/lib/libcurl.4.dylib', '7.0.0', '9.0.0'),
        ('/usr/lib/libc++.1.dylib', '1.0.0', '1300.23.0'),
        ('/usr/lib/libiconv.2.dylib', '7.0.0', '7.0.0'),
        ('/usr/lib/libobjc.A.dylib', '1.0.0', '228.0.0'),
        ('/usr/lib/libz.1.dylib', '1.0.0', '1.2.11'),
        ('/usr/lib/libSystem.B.dylib', '1.0.0', '1311.100.3'),
        ('/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation', '150.0.0', '1858.112.0'),
        ('/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics', '64.0.0', '1557.5.4'),
        ('/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText', '1.0.0', '1.0.0'),
    ]
}

Might be a duplicate of #153, since the proper fix for that should fix this.