Viewing File: /opt/alt/python34/lib64/python3.4/ctypes/__pycache__/util.cpython-34.pyc

�
i f#�@s�ddlZddlZddlZddlZejdkrfdd�Zdd�Zdd�Znejd	kr�d
d�Znejdkr�ejdkr�dd
l	m
Zdd�Zn�ejdkr�ddlZddl
Z
dd�Zejdkrdd�Zndd�Zejjd%�rKdd�Zdd�Zq�ejdkrxdd�Zddd�Zq�dd �Zd!d�Znd"d#�Zed$kr�e�ndS)&�N�ntcCs�d}tjj|�}|d
kr(dS|t|�}tj|d�jdd�\}}t|dd��d}t|dd��d}|dkr�d	}n|dkr�||SdS)z�Return the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        zMSC v.��N� ��g$@r������)�sys�version�find�len�split�int)�prefix�i�s�restZmajorVersionZminorVersion�r�0/opt/alt/python34/lib64/python3.4/ctypes/util.py�_get_build_versions%	rcCsot�}|dkrdS|dkr.d}nd|d}ddl}d|jjkrg|d7}n|d	S)
z%Return the name of the VC runtime dllNr�msvcrtzmsvcr%d�
rz_d.pyd�dz.dll)r�importlib.machinery�	machinery�EXTENSION_SUFFIXES)rZclibname�	importlibrrr�find_msvcrts		
rcCs�|dkrt�Sx�tjdjtj�D]l}tjj||�}tjj|�r^|S|j�j	d�ryq-n|d}tjj|�r-|Sq-WdS)N�c�m�PATHz.dll)rr )
r�os�environr�pathsep�path�join�isfile�lower�endswith)�nameZ	directoryZfnamerrr�find_library0s 
r+ZcecCs|S)Nr)r*rrrr+Fs�posix�darwin)�	dyld_findcCs\d|d|d||fg}x4|D],}yt|�SWq(tk
rSw(Yq(Xq(WdS)Nzlib%s.dylibz%s.dylibz%s.framework/%s)�
_dyld_find�
ValueError)r*Zpossiblerrrr+Ks

c	Cs�dtj|�}tj�\}}tj|�d|d|}z3tj|�}z|j�}Wd|j�}XWdytj|�Wnt	k
r�YnXX|dkr�t
d��ntj||�}|s�dS|jd�S)Nz[^\(\)\s]*lib%s\.[^\(\)\s]*z�if type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit 10; fi;LANG=C LC_ALL=C $CC -Wl,-t -o z 2>&1 -lrzgcc or cc command not foundr)
�re�escape�tempfileZmkstempr"�close�popen�read�unlink�FileNotFoundError�OSError�search�group)	r*�exprZfdoutZccout�cmd�fZtrace�rv�resrrr�_findLib_gccZs&

rAZsunos5c	Csj|s
dSd|}tjtj|���}|j�}WdQXtjd|�}|s]dS|jd�S)Nz#/usr/ccs/bin/dump -Lpv 2>/dev/null z\[.*\]\sSONAME\s+([^\s]+)r)�
contextlib�closingr"r5r6r1r:r;)r>r=�datar@rrr�_get_sonameus
rEcCs�|s
dSd|}tj|�}z|j�}Wd|j�}X|dkr^td��ntjd|�}|szdS|jd�S)NzWif ! type objdump >/dev/null 2>&1; then exit 10; fi;objdump -p -j .dynamic 2>/dev/null rzobjdump command not foundz\sSONAME\s+([^\s]+)r)r"r5r6r4r9r1r:r;)r>r=�dumpr?r@rrrrE�s
�freebsd�openbsd�	dragonflycCsg|jd�}g}y-x&|r@|jdt|j���qWWntk
rVYnX|pftjgS)N�.r)r�insertr�popr0r
�maxsize)Zlibname�partsZnumsrrr�_num_version�s	$
rOc	Cs�tj|�}d||f}tjtjd���}|j�}WdQXtj||�}|sttt	|��S|j
dt�|dS)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+)z/sbin/ldconfig -r 2>/dev/null�keyrr)r1r2rBrCr"r5r6�findallrErA�sortrO)r*Zenamer<r>rDr@rrrr+�scCs�tjjd�sdS|r%d}nd}tjtj|���L}xB|j�D]4}|j�}|jd�rS|j	�d}qSqSWWdQX|s�dSxF|j	d�D]5}tjj
|d|�}tjj|�r�|Sq�WdS)Nz
/usr/bin/crlez*env LC_ALL=C /usr/bin/crle -64 2>/dev/nullz&env LC_ALL=C /usr/bin/crle 2>/dev/nullzDefault Library Path (ELF):��:zlib%s.so)r"r%�existsrBrCr5�	readlines�strip�
startswithrr&)r*�is64r=r>�line�paths�dirZlibfilerrr�
_findLib_crle�s"	r]FcCstt||�pt|��S)N)rEr]rA)r*rYrrrr+�scCsHddl}|jd�dkr7tj�jd}ntj�jd}idd6dd	6dd
6dd6dd
6}|j|d�}tjdtj|�|f�}y�t	j
ddgdt	jdt	jdt	jdidd6dd6��>}tj
||jj��}|r(tj|jd��SWdQXWntk
rCYnXdS)Nr�lrSz-32z-64zlibc6,x86-64z	x86_64-64zlibc6,64bitzppc64-64z
sparc64-64zs390x-64zlibc6,IA-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%sz/sbin/ldconfigz-p�stdin�stderr�stdout�env�C�LC_ALLZLANGr)�structZcalcsizer"�uname�machine�get�fsencoder1r2�
subprocess�PopenZDEVNULL�PIPEr:rar6�fsdecoder;r9)r*rergZmach_mapZabi_typeZregex�pr@rrr�_findSoname_ldconfig�s0
			 
rocCst|�ptt|��S)N)rorErA)r*rrrr+�scCs,ddlm}tjdkrRt|j�t|jd��ttd��ntjdkr(ttd��ttd��ttd��tj	d	kr�t|j
d
��t|j
d��t|j
d��t|j
d
��q(t|j
d��t|j
d��ttd��ndS)Nr)�cdllrrr,r r�bz2r-z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemzlibm.sozlibcrypt.soZcrypt)Zctypesrpr"r*�printr�loadr+r
�platformZLoadLibrary)rprrr�test�s"
ru�__main__)rGrHrI)r
r"rBrjr*rrr+rtZctypes.macholib.dyldr.r/r1r3rArErXrOr]roru�__name__rrrr�<module>s8
Back to Directory File Manager