3 �Pf{ �@sPddlmZddlZddlZddlZddlZdd�Zdd�Zdd�Zd d �Z dS) �)�absolute_importNc CsPtjd�}y |j}Wntk r(dSXtj|_|�}t|t�sL|jd�}|S)z9Returns glibc version string, or None if not using glibc.N�ascii) �ctypesZCDLL�gnu_get_libc_version�AttributeErrorZc_char_pZrestype� isinstance�str�decode)Zprocess_namespacer� version_str�r �/usr/lib/python3.6/glibc.py�glibc_version_string s    r cCsHtjd|�}|s$tjd|t�dSt|jd��|koFt|jd��|kS)Nz$(?P[0-9]+)\.(?P[0-9]+)z=Expected glibc version with 2 components major.minor, got: %sF�major�minor)�re�match�warnings�warn�RuntimeWarning�int�group)r �required_major� minimum_minor�mr r r �check_glibc_version#s  rcCst�}|dkrdSt|||�S)NF)r r)rrr r r r �have_compatible_glibc3srcCs"t�}|dkrtj�Sd|fSdS)NZglibc)r �platform�libc_ver)Z glibc_versionr r r rKsr) Z __future__rrrrrr rrrr r r r �s