Your IP : 3.15.150.100


Current Path : /lib64/python3.6/ctypes/__pycache__/
Upload File :
Current File : //lib64/python3.6/ctypes/__pycache__/util.cpython-36.opt-2.pyc

3


 \�-�@sddlZddlZddlZddlZejdkrBdd�Zdd�Zdd�Zejd	krlejd
krlddl	m
Zdd�Zn�ejd	k�rddlZddl
Z
d
d�Zejdkr�dd�Zndd�Zejjd%�r�dd�Zdd�Zn6ejdkr�dd�Zd&dd�Zndd�Zdd �Zd!d�Zd"d#�Zed$k�re�dS)'�N�ntcCs�d}tjj|�}|d
krdS|t|�}tj|d�jdd�\}}t|dd��d}|dkrf|d7}t|dd��d}|dkr�d	}|dkr�||SdS)NzMSC v.��� ��
�g$@r������)�sys�version�find�len�split�int)�prefix�i�s�restZmajorVersionZminorVersion�r�#/usr/lib64/python3.6/ctypes/util.py�_get_build_version	srcCs^t�}|dkrdS|dkr d}n|dkr6d|d}ndSddl}d|jjkrV|d7}|d	S)
Nr�msvcrtrzmsvcr%d�
rz_d.pyd�dz.dll)r�importlib.machinery�	machinery�EXTENSION_SUFFIXES)rZclibname�	importlibrrr�find_msvcrt"srcCst|dkrt�Sx`tjdjtj�D]J}tjj||�}tjj|�rD|S|j�j	d�rTq"|d}tjj|�r"|Sq"WdS)N�c�m�PATHz.dll)r r!)
r�os�environr�pathsep�path�join�isfile�lower�endswith)�nameZ	directoryZfnamerrr�find_library7sr,�posix�darwin)�	dyld_findcCsLd|d|d||fg}x,|D]$}yt|�Stk
rBw Yq Xq WdS)Nzlib%s.dylibz%s.dylibz%s.framework/%s)�
_dyld_find�
ValueError)r+�possiblerrrr,Hs
c	!Cstjdtj|��}tjd�}|s,tjd�}|s4dStj�}z||dd|jd|g}t	tj
�}d|d<d|d	<ytj|tj
tj|d
�}Wntk
r�dSX|�|jj�}WdQRXWdy|j�Wntk
r�YnXXtj||�}|s�dStj|jd��S)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*�gccZccz-Wl,-tz-oz-l�C�LC_ALL�LANG)�stdout�stderr�envr)r#�fsencode�re�escape�shutil�which�tempfileZNamedTemporaryFiler+�dictr$�
subprocess�Popen�PIPEZSTDOUT�OSErrorr7�read�close�FileNotFoundError�search�fsdecode�group)	r+�exprZ
c_compilerZtemp�argsr9�procZtrace�resrrr�_findLib_gccWs:


rOZsunos5cCsz|sdSytjdd|ftjtjd�}Wntk
r:dSX|�|jj�}WdQRXtjd|�}|sjdSt	j
|jd��S)Nz/usr/ccs/bin/dumpz-Lpv)r7r8s\[.*\]\sSONAME\s+([^\s]+)r)rArBrC�DEVNULLrDr7rEr;rHr#rIrJ)�frM�datarNrrr�_get_soname�srScCs�|sdStjd�}|sdSy"tj|ddd|ftjtjd�}Wntk
rPdSX|�|jj�}WdQRXt	j
d|�}|s�dStj|j
d��S)N�objdumpz-pz-jz.dynamic)r7r8s\sSONAME\s+([^\s]+)r)r=r>rArBrCrPrDr7rEr;rHr#rIrJ)rQrTrM�dumprNrrrrS�s"
�freebsd�openbsd�	dragonflycCsR|jd�}g}y"x|r,|jdt|j���qWWntk
rDYnX|pPtjgS)N�.r)r�insertr�popr1r�maxsize)Zlibname�partsZnumsrrr�_num_version�s
r^cCs�tj|�}d||f}tj|�}ytjdtjtjd�}Wntk
rPd}YnX|�|j	j
�}WdQRXtj||�}|s�tt
|��S|jtd�tj|d	�S)
Nz:-l%s\.\S+ => \S*/(lib%s\.\S+)�/sbin/ldconfig�-r)r7r8�)�keyr)r_r`r	)r;r<r#r:rArBrCrPrDr7rE�findallrSrO�sortr^rI)r+ZenamerKrMrRrNrrrr,�s 


c	Cs�tjjd�sdSttj�}d|d<|r,d
}nd}d}ytj|tjtj|d�}Wnt	k
rbdSX|�:x2|j
D](}|j�}|jd�rrtj
|�j�d}qrWWdQRX|s�dSx4|jd�D]&}tjj|d	|�}tjj|�r�|Sq�WdS)N�
/usr/bin/crler4r5�-64)r7r8r9sDefault Library Path (ELF):��:zlib%s.so)rerf)re)r#r&�existsr@r$rArBrCrPrDr7�strip�
startswithrIrr')	r+�is64r9rL�pathsrM�line�dirZlibfilerrr�
_findLib_crle�s6

 rpFcCstt||�pt|��S)N)rSrprO)r+rlrrrr,�scCs�ddl}|jd�dkr&tj�jd}ntj�jd}dddddd	�}|j|d
�}d}tj|tj|�|f�}yZt	j
dd
gt	jt	jt	jddd�d��,}tj
||jj��}|r�tj|jd��SWdQRXWntk
r�YnXdS)Nr�lrgz-32z-64zlibc6,x86-64zlibc6,64bitzlibc6,IA-64)z	x86_64-64zppc64-64z
sparc64-64zs390x-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%sz/sbin/ldconfigz-pr4)r5r6)�stdinr8r7r9r)�structZcalcsizer#�uname�machine�getr:r;r<rArBrPrCrHr7rErIrJrD)r+rsruZmach_mapZabi_typeZregex�prNrrr�_findSoname_ldconfig�s.
rxcCs�dtj|�}ddg}tjjd�}|rHx |jd�D]}|jd|g�q2W|jdtjd|g�d}yFtj	|tj
tj
d	d
�}|j�\}}tj|tj
|��}	|	r�|	jd�}Wn"tk
r�}
zWYdd}
~
XnX|S)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*Zldz-tZLD_LIBRARY_PATHrhz-Lz-oz-l%sT)r7r8Zuniversal_newlinesr)r;r<r#r$rvr�extend�devnullrArBrCZcommunicaterHrIrJ�	Exception)r+rK�cmdZlibpathr�resultrw�out�_rN�errr�_findLib_lds&
r�cCst|�ptt|�pt|��S)N)rxrSrOr�)r+rrrr,,scCs�ddlm}tjdkr:t|j�t|jd��ttd��tjdkr�ttd��ttd��ttd��tj	d	kr�t|j
d
��t|j
d��t|j
d��t|j
d
��n(t|j
d��t|j
d��ttd��dS)Nr)�cdllrrr-r!r �bz2r.z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemzlibm.sozlibcrypt.soZcrypt)Zctypesr�r#r+�printr�loadr,r�platformZLoadLibrary)r�rrr�test4s"



r��__main__)rVrWrX)F)r#r=rArr+rrr,r�Zctypes.macholib.dyldr/r0r;r?rOrSrkr^rprxr�r��__name__rrrr�<module>s8

+



$