Viewing File: /opt/alt/python310/lib64/python3.10/ctypes/__pycache__/util.cpython-310.pyc

o

���h76�@s@ddlZddlZddlZddlZejdkr"dd�Zdd�Zdd�Znoejd	kr7ejd
kr7ddl	m
Zdd�ZnZej�d
�rDddl
mZnMejd	kr�ddlZddlZdd�Zdd�Zejdkrcdd�Zndd�Zej�d�rvdd�Zdd�Znejdkr�dd�Zd'dd�Zndd �Zd!d"�Zd#d�Zd$d%�Zed&kr�e�dSdS)(�N�ntcCs�d}tj�|�}|dkrdS|t|�}tj|d��dd�\}}t|dd��d}|dkr3|d7}t|d	d
��d}|dkrCd}|dkrK||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�2/opt/alt/python310/lib64/python3.10/ctypes/util.py�_get_build_version	srcCs^t�}|dur	dS|dkrd}n
|dkrd|d}ndSddl}d|jjvr+|d	7}|d
S)z%Return the name of the VC runtime dllNr�msvcrtrzmsvcr%d�
rz_d.pyd�d�.dll)r�importlib.machinery�	machinery�EXTENSION_SUFFIXES)rZclibname�	importlibrrr�find_msvcrt"sr cCsx|dvrt�Stjd�tj�D])}tj�||�}tj�|�r#|S|���	d�r+q|d}tj�|�r9|SqdS)N)�c�m�PATHr)
r �os�environr�pathsep�path�join�isfile�lower�endswith)�nameZ	directoryZfnamerrr�find_library7s�r-�posix�darwin)�	dyld_findc	CsHd|d|d||fg}|D]}zt|�WSty!YqwdS)Nzlib%s.dylibz%s.dylibz%s.framework/%s)�
_dyld_find�
ValueError)r,�possiblerrrr-Hs
���aix)r-cCs@d}t|d��}|�d�|kWd�S1swYdS)z,Return True if the given file is an ELF filesELF�br�N)�open�read)�filenameZ
elf_headerZthefilerrr�_is_elf`s$�r:c
Csft�dt�|��}t�d�}|st�d�}|sdSt��}zh|dd|jd|g}t	tj
�}d|d<d|d	<z
tj|tj
tj|d
�}Wnty^YWz|��WdSty]YdSww|�
|j��}Wd�n1sqwYWz|��Wnty�Ynwz|��Wwty�Ywwt�||�}|s�dS|D]
}	t|	�s�q�t�|	�SdS)N�[^\(\)\s]*lib%s\.[^\(\)\s]*ZgccZccz-Wl,-t�-oz-l�C�LC_ALL�LANG��stdout�stderr�env)r$�fsencode�re�escape�shutil�which�tempfileZNamedTemporaryFiler,�dictr%�
subprocess�Popen�PIPEZSTDOUT�OSError�close�FileNotFoundErrorrAr8�findallr:�fsdecode)
r,�exprZ
c_compilerZtemp�argsrC�procZtrace�res�filerrr�_findLib_gccfs`



���������rXZsunos5cCs�|sdSztjdd|ftjtjd�}Wn
tyYdSw|�
|j��}Wd�n1s0wYt�d|�}|s?dSt	�
|�d��S)Nz/usr/ccs/bin/dumpz-Lpv�rArBs\[.*\]\sSONAME\s+([^\s]+)r)rKrLrM�DEVNULLrNrAr8rE�searchr$rR�group)�frU�datarVrrr�_get_soname�s"
���r_cCs�|sdSt�d�}|s
dSztj|ddd|ftjtjd�}Wn
ty(YdSw|�
|j��}Wd�n1s;wYt	�
d|�}|sJdSt�|�
d��S)N�objdump�-pz-jz.dynamicrYs\sSONAME\s+([^\s]+)r)rGrHrKrLrMrZrNrAr8rEr[r$rRr\)r]r`rU�dumprVrrrr_�s(

���)ZfreebsdZopenbsdZ	dragonflycCsN|�d�}g}z|r|�dt|����|s
Wn	ty Ynw|p&tjgS)N�.r)r�insertr�popr2r�maxsize)Zlibname�partsZnumsrrr�_num_version�s
���rhcCs�t�|�}d||f}t�|�}ztjdtjtjd�}Wnty'd}Ynw|�
|j	�
�}Wd�n1s:wYt�||�}|sMtt
|��S|jtd�t�|d�S)Nz:-l%s\.\S+ => \S*/(lib%s\.\S+))�/sbin/ldconfigz-rrY�)�keyr)rErFr$rDrKrLrMrZrNrAr8rQr_rX�sortrhrR)r,ZenamerSrUr^rVrrrr-�s&


���c	Cs�tj�d�sdSttj�}d|d<|rd}nd}d}z
tj|tjtj|d�}Wn
t	y1YdSw|� |j
D]}|��}|�d�rLt�
|���d}q8Wd�n1sWwY|s`dS|�d	�D]}tj�|d
|�}tj�|�rz|SqedS)N�
/usr/bin/crler=r>)rm�-64)rmr@sDefault Library Path (ELF):r6�:zlib%s.so)r$r'�existsrJr%rKrLrMrZrNrA�strip�
startswithrRrr()	r,�is64rCrT�pathsrU�line�dirZlibfilerrr�
_findLib_crle�sB

��

����rwFcCstt||�p	t|��S�N)r_rwrX)r,rsrrrr-	scCsddl}|�d�dkrt��jd}nt��jd}dddddd	�}|�|d
�}d}t�|t�|�|f�}zBt	j
dd
gt	jt	jt	jddd�d��%}t�
||j���}|ret�|�d��Wd�WSWd�WdS1sqwYWdSty�YdSw)Nr�lr6z-32rnzlibc6,x86-64zlibc6,64bitzlibc6,IA-64)z	x86_64-64zppc64-64z
sparc64-64zs390x-64zia64-64Zlibc6z\s+(lib%s\.[^\s]+)\s+\(%srirar=)r>r?)�stdinrBrArCr)�structZcalcsizer$�uname�machine�getrDrErFrKrLrZrMr[rAr8rRr\rN)r,r{r}Zmach_mapZabi_typeZregex�prVrrr�_findSoname_ldconfigs<�
��&��r�cCs�dt�|�}ddg}tj�d�}|r"|�d�D]	}|�d|g�q|�dtjd|g�d}z.tj	|tj
tj
d	d
�}|��\}}t�|t�
|��}	|	D]}
t|
�sSqLt�
|
�WSW|StygY|Sw)Nr;Zldz-tZLD_LIBRARY_PATHroz-Lr<z-l%sT)rArBZuniversal_newlines)rErFr$r%r~r�extend�devnullrKrLrMZcommunicaterQrRr:�	Exception)r,rS�cmdZlibpathr�resultr�out�_rVrWrrr�_findLib_ld,s2
��	��r�cCs t|�ptt|��ptt|��Srx)r�r_rXr�)r,rrrr-Gs

�
�cCs�ddlm}tjdkrt|j�t|�d��ttd��tjdkr�ttd��ttd��ttd��tj	d	krWt|�
d
��t|�
d��t|�
d��t|�
d
��dStj	�d�r�ddlm}tj
dkr�td|dtj����td|�
d����ttd��t|�
d��ntd|dtj����td|�
d����tdtd����td|�
td�����tdtd����td|�
td�����dSt|�
d��t|�
d��ttd��dSdS)Nr)�cdllrrr.r"r!�bz2r/z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemr4)�CDLLlz"Using CDLL(name, os.RTLD_MEMBER): z
libc.a(shr.o)zUsing cdll.LoadLibrary(): Zrpmz	librpm.sozlibc.a(shr_64.o)z	crypt	:: Zcryptz
crypto	:: Zcryptozlibm.sozlibcrypt.so)Zctypesr�r$r,�printr�loadr-r�platformZLoadLibraryrrr�rfZRTLD_MEMBER)r�r�rrr�testOs>




�r��__main__)F)r$rGrKrr,rr r-r�Zctypes.macholib.dyldr0r1rrZctypes._aixrErIr:rXr_rhrwr�r�r��__name__rrrr�<module>sB




2


$(
�
Back to Directory File Manager