diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux_2_24_aarch64/Dockerfile similarity index 81% rename from tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile rename to tools/dockerfile/grpc_artifact_python_manylinux_2_24_aarch64/Dockerfile index db98443797e..3edc53bd097 100644 --- a/tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64/Dockerfile +++ b/tools/dockerfile/grpc_artifact_python_manylinux_2_24_aarch64/Dockerfile @@ -15,10 +15,16 @@ # The aarch64 wheels are being crosscompiled to allow running the build # on x64 machine. The dockcross/manylinux2014-aarch64 image is a x86_64 # image with crosscompilation toolchain installed. -# Use an older version of dockcross image that has gcc4.9.4 because it was built +# We use an older version of dockcross image that has gcc4.9.4 because it was built # before https://github.com/dockcross/dockcross/pull/449 +# Thanks to that, wheel build with this image aren't actually +# compliant with manylinux2014, but only with manylinux_2_24 FROM dockcross/manylinux2014-aarch64:20200929-608e6ac +# Make the grpc wheels correctly tagged with manylinux_2_24 +# instead of the incorrect manylinux2014 (see the note above). +ENV AUDITWHEEL_PLAT manylinux_2_24_$AUDITWHEEL_ARCH + ################################### # Install Python build requirements RUN /opt/python/cp35-cp35m/bin/pip install --upgrade cython diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py index df964500de0..692517b0790 100644 --- a/tools/run_tests/artifacts/artifact_targets.py +++ b/tools/run_tests/artifacts/artifact_targets.py @@ -126,7 +126,11 @@ class PythonArtifact: # This is needed because C core won't build with GCC 4.8 that's # included in the default dockcross toolchain and we needed # to opt into using a slighly newer version of GCC. - environ['GRPC_PYTHON_BUILD_WITH_STATIC_LIBSTDCXX'] = 'TRUE' + # TODO(jtattermusch): Due to https://github.com/grpc/grpc/issues/26279 + # we can't enable static linking libstdc++. Because of that, + # the resulting wheel will be compatible with fewer platforms + # but at least it will work. + # environ['GRPC_PYTHON_BUILD_WITH_STATIC_LIBSTDCXX'] = 'TRUE' return create_docker_jobspec( self.name, @@ -152,8 +156,11 @@ class PythonArtifact: # This is needed because C core won't build with GCC 4.8 that's # included in the default dockcross toolchain and we needed # to opt into using a slighly newer version of GCC. - environ['GRPC_PYTHON_BUILD_WITH_STATIC_LIBSTDCXX'] = 'TRUE' - + # TODO(jtattermusch): Due to https://github.com/grpc/grpc/issues/26279 + # we can't enable static linking libstdc++. Because of that, + # the resulting wheel will be compatible with fewer platforms + # but at least it will work. + # environ['GRPC_PYTHON_BUILD_WITH_STATIC_LIBSTDCXX'] = 'TRUE' else: # only run auditwheel if we're not crosscompiling environ['GRPC_RUN_AUDITWHEEL_REPAIR'] = 'TRUE' @@ -263,7 +270,7 @@ class CSharpExtArtifact: if self.arch == 'aarch64': # for aarch64, use a dockcross manylinux image that will # give us both ready to use crosscompiler and sufficient backward compatibility - dockerfile_dir = 'tools/dockerfile/grpc_artifact_python_manylinux2014_aarch64' + dockerfile_dir = 'tools/dockerfile/grpc_artifact_python_manylinux_2_24_aarch64' return create_docker_jobspec( self.name, dockerfile_dir, 'tools/run_tests/artifacts/build_artifact_csharp.sh') @@ -388,10 +395,10 @@ def targets(): PythonArtifact('manylinux2010', 'x86', 'cp37-cp37m'), PythonArtifact('manylinux2010', 'x86', 'cp38-cp38'), PythonArtifact('manylinux2010', 'x86', 'cp39-cp39'), - PythonArtifact('manylinux2014', 'aarch64', 'cp36-cp36m'), - PythonArtifact('manylinux2014', 'aarch64', 'cp37-cp37m'), - PythonArtifact('manylinux2014', 'aarch64', 'cp38-cp38'), - PythonArtifact('manylinux2014', 'aarch64', 'cp39-cp39'), + PythonArtifact('manylinux_2_24', 'aarch64', 'cp36-cp36m'), + PythonArtifact('manylinux_2_24', 'aarch64', 'cp37-cp37m'), + PythonArtifact('manylinux_2_24', 'aarch64', 'cp38-cp38'), + PythonArtifact('manylinux_2_24', 'aarch64', 'cp39-cp39'), PythonArtifact('linux_extra', 'armv7', 'cp36-cp36m'), PythonArtifact('linux_extra', 'armv7', 'cp37-cp37m'), PythonArtifact('linux_extra', 'armv7', 'cp38-cp38'),