code: def _parse_glibc_version(version_str):
      # type: (str) -> Tuple[int, int]
      # Parse glibc version.
      #
      # We use a regexp instead of str.split because we want to discard any
      # random junk that might come after the minor version -- this might happen
      # in patched/forked versions of glibc (e.g. Linaro's version of glibc
      # uses version strings like "2.20-2014.11"). See gh-3588.
      m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
      if not m:
          warnings.warn(
              "Expected glibc version with 2 components major.minor,"
              " got: %s" % version_str,
              RuntimeWarning,
          )
          return -1, -1
      return (int(m.group("major")), int(m.group("minor")))
  
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 19 for calling a global function with example usage: _parse_glibc_version(version_str) and returns: int,  int, unknown,  unknown