code: def _manylinux_tags(linux, arch):
      # type: (str, str) -> Iterator[str]
      # Oldest glibc to be supported regardless of architecture is (2, 17).
      too_old_glibc2 = glibcVersion(2, 16)
      if arch in {"x86_64", "i686"}:
          # On x86/i686 also oldest glibc to be supported is (2, 5).
          too_old_glibc2 = glibcVersion(2, 4)
      current_glibc = glibcVersion(*_get_glibc_version())
      glibc_max_list = [current_glibc]
      # We can assume compatibility across glibc major versions.
      # https://sourceware.org/bugzilla/show_bug.cgi?id=24636
      #
      # Build a list of maximum glibc versions so that we can
      # output the canonical list of all glibc from current_glibc
      # down to too_old_glibc2, including all intermediary versions.
      for glibc_major in range(current_glibc.major - 1, 1, -1):
          glibc_max_list.append(
              glibcVersion(glibc_major, _LAST_GLIBC_MINOR[glibc_major])
          )
      for glibc_max in glibc_max_list:
          if glibc_max.major == too_old_glibc2.major:
              min_minor = too_old_glibc2.minor
          else:
              # For other glibc major versions oldest supported is (x, 0).
              min_minor = -1
          for glibc_minor in range(glibc_max.minor, min_minor, -1):
              glibc_version = (glibc_max.major, glibc_minor)
              tag = "manylinux_{}_{}".format(*glibc_version)
              if _is_manylinux_compatible(tag, arch, glibc_version):
                  yield linux.replace("linux", tag)
              # Handle the legacy manylinux1, manylinux2010, manylinux2014 tags.
              if glibc_version in _LEGACY_MANYLINUX_MAP:
                  legacy_tag = _LEGACY_MANYLINUX_MAP[glibc_version]
                  if _is_manylinux_compatible(
                      legacy_tag, arch, glibc_version
                  ):
                      yield linux.replace("linux", legacy_tag)
  
imports: from __future__ import absolute_import
  import distutils.util
  import collections
  import logging
  import os
  import platform
  import re
  import struct
  import sys
  import sysconfig
  import warnings
  from ._typing import TYPE_CHECKING, cast
label_desc: Use image node_id 25 for calling a global function with example usage: _manylinux_tags(linux, arch) without return types