Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[build] Linux aarch64 wheels are build with manylinux_2_34_aarch64 tag according to auditwheel check #8883

Open
atalman opened this issue Jan 27, 2025 · 5 comments

Comments

@atalman
Copy link
Contributor

atalman commented Jan 27, 2025

🐛 Describe the bug

Test:
curl -O https://download.pytorch.org/whl/test/cpu/torchvision-0.21.0-cp310-cp310-linux_aarch64.whl

torchvision-0.21.0-cp310-cp310-linux_aarch64.whl is consistent with
the following platform tag: "linux_aarch64".

The wheel references external versioned symbols in these
system-provided shared libraries: libgcc_s.so.1 with versions
{'GCC_3.0'}, libc.so.6 with versions {'GLIBC_2.17'}, libstdc++.so.6
with versions {'CXXABI_1.3.2', 'GLIBCXX_3.4.29', 'GLIBCXX_3.4.22',
'GLIBCXX_3.4.14', 'GLIBCXX_3.4.9', 'CXXABI_1.3.9', 'CXXABI_1.3.5',
'GLIBCXX_3.4.15', 'GLIBCXX_3.4.19', 'CXXABI_1.3.11', 'CXXABI_1.3',
'GLIBCXX_3.4.18', 'GLIBCXX_3.4.21', 'GLIBCXX_3.4', 'CXXABI_1.3.3',
'GLIBCXX_3.4.11', 'GLIBCXX_3.4.20', 'CXXABI_1.3.8'}, libpthread.so.0
with versions {'GLIBC_2.17'}, libjpeg.4b00edfa.so.8 with versions
{'LIBJPEG_8.0'}, libpng16.303743ff.so.16 with versions {'PNG16_0'},
libswscale.50a41ba9.so.5 with versions {'LIBSWSCALE_5'},
libswresample.9aea3bfb.so.3 with versions {'LIBSWRESAMPLE_3'},
libavutil.11cb4cb7.so.56 with versions {'LIBAVUTIL_56'},
libavcodec.55ff7123.so.58 with versions {'LIBAVCODEC_58'},
libavformat.bc3b37c9.so.58 with versions {'LIBAVFORMAT_58'}, libm.so.6
with versions {'GLIBC_2.17'}, libz.a46a3c60.so.1 with versions
{'ZLIB_1.2.3.4', 'ZLIB_1.2.0', 'ZLIB_1.2.0.2'},
libgnutls.66cd1b24.so.30 with versions {'GNUTLS_3_4'}, libdl.so.2 with
versions {'GLIBC_2.17'}, libhogweed.d90c9fca.so.6 with versions
{'HOGWEED_6', 'HOGWEED_INTERNAL_6_0'}, libnettle.b698a10d.so.8 with
versions {'NETTLE_8', 'NETTLE_INTERNAL_8_0'}

This constrains the platform tag to "manylinux_2_34_aarch64". In order
to achieve a more compatible tag, you would need to recompile a new
wheel from source on a system with earlier versions of these
libraries, such as a recent manylinux image.

Versions

0.21.0

@atalman
Copy link
Contributor Author

atalman commented Jan 27, 2025

@atalman
Copy link
Contributor Author

atalman commented Jan 27, 2025

Torchaudio does not have this issue:

following platform tag: "linux_aarch64".

The wheel references external versioned symbols in these
system-provided shared libraries: libgcc_s.so.1 with versions
{'GCC_3.0'}, libc.so.6 with versions {'GLIBC_2.17'}, libstdc++.so.6
with versions {'GLIBCXX_3.4.14', 'GLIBCXX_3.4.20', 'GLIBCXX_3.4.21',
'CXXABI_1.3.11', 'GLIBCXX_3.4.15', 'GLIBCXX_3.4.19', 'GLIBCXX_3.4.18',
'CXXABI_1.3.2', 'GLIBCXX_3.4.9', 'CXXABI_1.3.3', 'CXXABI_1.3',
'CXXABI_1.3.5', 'GLIBCXX_3.4', 'CXXABI_1.3.9', 'GLIBCXX_3.4.11'},
libm.so.6 with versions {'GLIBC_2.27', 'GLIBC_2.17'}, libgomp.so.1
with versions {'GOMP_4.0', 'OMP_1.0'}, libavfilter.so.7 with versions
{'LIBAVFILTER_7'}, libavcodec.so.58 with versions {'LIBAVCODEC_58'},
libavdevice.so.58 with versions {'LIBAVDEVICE_58'}, libavutil.so.56
with versions {'LIBAVUTIL_56'}, libavformat.so.58 with versions
{'LIBAVFORMAT_58'}, libavfilter.so.8 with versions {'LIBAVFILTER_8'},
libavformat.so.59 with versions {'LIBAVFORMAT_59'}, libavutil.so.57
with versions {'LIBAVUTIL_57'}, libavdevice.so.59 with versions
{'LIBAVDEVICE_59'}, libavcodec.so.59 with versions {'LIBAVCODEC_59'},
libavfilter.so.9 with versions {'LIBAVFILTER_9'}, libavdevice.so.60
with versions {'LIBAVDEVICE_60'}, libavformat.so.60 with versions
{'LIBAVFORMAT_60'}, libavcodec.so.60 with versions {'LIBAVCODEC_60'},
libavutil.so.58 with versions {'LIBAVUTIL_58'}

This constrains the platform tag to "manylinux_2_27_aarch64". In order
to achieve a more compatible tag, you would need to recompile a new
wheel from source on a system with earlier versions of these
libraries, such as a recent manylinux image

@atalman
Copy link
Contributor Author

atalman commented Jan 27, 2025

Running repair on torchvision:

repair --plat manylinux_2_28_aarch64  torchvision-0.21.0-cp310-cp310-linux_aarch64.whl
INFO:auditwheel.main_repair:Repairing torchvision-0.21.0-cp310-cp310-linux_aarch64.whl
usage: auditwheel [-h] [-V] [-v] command ...
auditwheel: error: cannot repair "torchvision-0.21.0-cp310-cp310-linux_aarch64.whl" to "manylinux_2_28_aarch64" ABI because of the presence of too-recent versioned symbols. You'll need to compile the wheel on an older toolchain.

I believe this is due to running custom script:
https://github.com/pytorch/vision/blob/main/packaging/wheel/relocate.py

@atalman
Copy link
Contributor Author

atalman commented Jan 27, 2025

torchvision 0.20.1:

auditwheel show torchvision-0.20.1-cp310-cp310-linux_aarch64.whl

torchvision-0.20.1-cp310-cp310-linux_aarch64.whl is consistent with
the following platform tag: "linux_aarch64".

The wheel references external versioned symbols in these
system-provided shared libraries: libgcc_s.so.1 with versions
{'GCC_3.0'}, libc.so.6 with versions {'GLIBC_2.17'}, libpthread.so.0
with versions {'GLIBC_2.17'}, libstdc++.so.6 with versions
{'GLIBCXX_3.4.14', 'CXXABI_1.3.2', 'CXXABI_1.3.9', 'GLIBCXX_3.4.15',
'CXXABI_1.3.8', 'CXXABI_1.3', 'GLIBCXX_3.4.19', 'CXXABI_1.3.5',
'GLIBCXX_3.4.9', 'GLIBCXX_3.4', 'CXXABI_1.3.3', 'GLIBCXX_3.4.18',
'GLIBCXX_3.4.11'}, libjpeg.ffe0698a.so.8 with versions
{'LIBJPEG_8.0'}, libpng16.243ce948.so.16 with versions {'PNG16_0'},
libswscale.e795fccc.so.5 with versions {'LIBSWSCALE_5'},
libswresample.8d5318dd.so.3 with versions {'LIBSWRESAMPLE_3'},
libavutil.e5711696.so.56 with versions {'LIBAVUTIL_56'},
libavcodec.975ccdf9.so.58 with versions {'LIBAVCODEC_58'},
libavformat.283b182c.so.58 with versions {'LIBAVFORMAT_58'}, libm.so.6
with versions {'GLIBC_2.17'}, libz.e570fdcb.so.1 with versions
{'ZLIB_1.2.0.2', 'ZLIB_1.2.0', 'ZLIB_1.2.3.4'},
libgnutls.95854a6f.so.30 with versions {'GNUTLS_3_4'}, libdl.so.2 with
versions {'GLIBC_2.17'}, libhogweed.d20a4bf7.so.6 with versions
{'HOGWEED_INTERNAL_6_0', 'HOGWEED_6'}, libnettle.eb5efa8c.so.8 with
versions {'NETTLE_INTERNAL_8_0', 'NETTLE_8'}

This constrains the platform tag to "manylinux_2_24_aarch64". In order
to achieve a more compatible tag, you would need to recompile a new
wheel from source on a system with earlier versions of these
libraries, such as a recent manylinux image.

@atalman
Copy link
Contributor Author

atalman commented Jan 27, 2025

Release 2.5.1 audit output:

torchvision:

auditwheel show torchvision-0.20.1-cp312-cp312-manylinux2014_aarch64.whl

torchvision-0.20.1-cp312-cp312-manylinux2014_aarch64.whl is consistent
with the following platform tag: "linux_aarch64".

The wheel references external versioned symbols in these
system-provided shared libraries: libgcc_s.so.1 with versions
{'GCC_3.0'}, libc.so.6 with versions {'GLIBC_2.17'}, libpthread.so.0
with versions {'GLIBC_2.17'}, libstdc++.so.6 with versions
{'GLIBCXX_3.4.11', 'GLIBCXX_3.4.9', 'CXXABI_1.3.3', 'GLIBCXX_3.4.14',
'GLIBCXX_3.4.19', 'CXXABI_1.3.9', 'CXXABI_1.3.5', 'GLIBCXX_3.4.15',
'GLIBCXX_3.4.18', 'CXXABI_1.3', 'CXXABI_1.3.8', 'CXXABI_1.3.2',
'GLIBCXX_3.4'}, libjpeg.ffe0698a.so.8 with versions {'LIBJPEG_8.0'},
libpng16.243ce948.so.16 with versions {'PNG16_0'},
libswscale.e795fccc.so.5 with versions {'LIBSWSCALE_5'},
libswresample.8d5318dd.so.3 with versions {'LIBSWRESAMPLE_3'},
libavutil.e5711696.so.56 with versions {'LIBAVUTIL_56'},
libavcodec.975ccdf9.so.58 with versions {'LIBAVCODEC_58'},
libavformat.283b182c.so.58 with versions {'LIBAVFORMAT_58'}, libm.so.6
with versions {'GLIBC_2.17'}, libz.e570fdcb.so.1 with versions
{'ZLIB_1.2.3.4', 'ZLIB_1.2.0', 'ZLIB_1.2.0.2'},
libgnutls.95854a6f.so.30 with versions {'GNUTLS_3_4'}, libdl.so.2 with
versions {'GLIBC_2.17'}, libhogweed.d20a4bf7.so.6 with versions
{'HOGWEED_INTERNAL_6_0', 'HOGWEED_6'}, libnettle.eb5efa8c.so.8 with
versions {'NETTLE_8', 'NETTLE_INTERNAL_8_0'}

This constrains the platform tag to "manylinux_2_24_aarch64". In order
to achieve a more compatible tag, you would need to recompile a new
wheel from source on a system with earlier versions of these
libraries, such as a recent manylinux image.

torchaudio:

auditwheel show torchaudio-2.5.1-cp312-cp312-manylinux2014_aarch64.whl

torchaudio-2.5.1-cp312-cp312-manylinux2014_aarch64.whl is consistent
with the following platform tag: "linux_aarch64".

The wheel references external versioned symbols in these
system-provided shared libraries: libgcc_s.so.1 with versions
{'GCC_3.0'}, libc.so.6 with versions {'GLIBC_2.17'}, libstdc++.so.6
with versions {'CXXABI_1.3.2', 'CXXABI_1.3.5', 'GLIBCXX_3.4.15',
'GLIBCXX_3.4.11', 'CXXABI_1.3.3', 'GLIBCXX_3.4.18', 'GLIBCXX_3.4.14',
'GLIBCXX_3.4.19', 'GLIBCXX_3.4', 'GLIBCXX_3.4.9', 'CXXABI_1.3'},
libgomp.so.1 with versions {'GOMP_4.0', 'OMP_1.0'}, libm.so.6 with
versions {'GLIBC_2.17'}, libavfilter.so.7 with versions
{'LIBAVFILTER_7'}, libavcodec.so.58 with versions {'LIBAVCODEC_58'},
libavdevice.so.58 with versions {'LIBAVDEVICE_58'}, libavutil.so.56
with versions {'LIBAVUTIL_56'}, libavformat.so.58 with versions
{'LIBAVFORMAT_58'}, libavfilter.so.8 with versions {'LIBAVFILTER_8'},
libavformat.so.59 with versions {'LIBAVFORMAT_59'}, libavutil.so.57
with versions {'LIBAVUTIL_57'}, libavdevice.so.59 with versions
{'LIBAVDEVICE_59'}, libavcodec.so.59 with versions {'LIBAVCODEC_59'},
libavfilter.so.9 with versions {'LIBAVFILTER_9'}, libavdevice.so.60
with versions {'LIBAVDEVICE_60'}, libavformat.so.60 with versions
{'LIBAVFORMAT_60'}, libavcodec.so.60 with versions {'LIBAVCODEC_60'},
libavutil.so.58 with versions {'LIBAVUTIL_58'}

The following external shared libraries are required by the wheel:
{
    "libavcodec.so.58": null,
    "libavcodec.so.59": null,
    "libavcodec.so.60": null,
    "libavdevice.so.58": null,
    "libavdevice.so.59": null,
    "libavdevice.so.60": null,
    "libavfilter.so.7": null,
    "libavfilter.so.8": null,
    "libavfilter.so.9": null,
    "libavformat.so.58": null,
    "libavformat.so.59": null,
    "libavformat.so.60": null,
    "libavutil.so.56": null,
    "libavutil.so.57": null,
    "libavutil.so.58": null,
    "libc.so.6": "/lib64/libc-2.28.so",
    "libc10.so": null,
    "libgcc_s.so.1": "/lib64/libgcc_s-8-20210514.so.1",
    "libm.so.6": "/lib64/libm-2.28.so",
    "libstdc++.so.6": "/lib64/libstdc++.so.6.0.25",
    "libtorch.so": null,
    "libtorch_cpu.so": null,
    "libtorch_python.so": null,
    "libtorchaudio.so": null,
    "libtorchaudio_sox.so": null,
    "libtorio_ffmpeg4.so": null,
    "libtorio_ffmpeg5.so": null,
    "libtorio_ffmpeg6.so": null
}

In order to achieve the tag platform tag "manylinux_2_39_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_38_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_37_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_36_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_35_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_34_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_31_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_28_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_27_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_24_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

In order to achieve the tag platform tag "manylinux_2_17_aarch64" the
following shared library dependencies will need to be eliminated:

libavcodec.so.58, libavcodec.so.59, libavcodec.so.60,
libavdevice.so.58, libavdevice.so.59, libavdevice.so.60,
libavfilter.so.7, libavfilter.so.8, libavfilter.so.9,
libavformat.so.58, libavformat.so.59, libavformat.so.60,
libavutil.so.56, libavutil.so.57, libavutil.so.58, libc10.so,
libtorch.so, libtorch_cpu.so, libtorch_python.so, libtorchaudio.so,
libtorchaudio_sox.so, libtorio_ffmpeg4.so, libtorio_ffmpeg5.so,
libtorio_ffmpeg6.so

@atalman atalman changed the title Torchvision aarch64 builds are build with manylinux_2_34_x86_64 tag Torchvision aarch64 builds are build with manylinux_2_34_x86_64 tag according to auditwheel check Jan 28, 2025
@atalman atalman changed the title Torchvision aarch64 builds are build with manylinux_2_34_x86_64 tag according to auditwheel check [build] aarch64 wheels are build with manylinux_2_34_x86_64 tag according to auditwheel check Jan 28, 2025
@atalman atalman changed the title [build] aarch64 wheels are build with manylinux_2_34_x86_64 tag according to auditwheel check [build] Linux aarch64 wheels are build with manylinux_2_34_x86_64 tag according to auditwheel check Jan 28, 2025
@atalman atalman changed the title [build] Linux aarch64 wheels are build with manylinux_2_34_x86_64 tag according to auditwheel check [build] Linux aarch64 wheels are build with manylinux_2_34_aarch64 tag according to auditwheel check Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant