Viewing File: /opt/alt/python312/lib64/python3.12/ctypes/__pycache__/util.cpython-312.pyc

�

��_i�6����ddlZddlZddlZddlZejdk(r
d�Zd�Zd�Zn�ejdk(rejdk(r
ddl	m
Zd	�Zn�ejjd
�rddl
mZnuejdk(rfddlZddlZd�Zd
�Zejdk(rd�Znd�Zejjd�rd�Zd�Zn ejdk(rd�Zdd�Zn	d�Zd�Zd�Zd�Zedk(re�yy)�N�ntc�4�d}tjj|�}|dk(ry|t|�z}tj|dj	dd�\}}t|dd�dz
}|dk\r|dz
}t|d	d
�dz}|dk(rd}|dk\r||zSy)
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�rest�majorVersion�minorVersions      �2/opt/alt/python312/lib64/python3.12/ctypes/util.py�_get_build_versionr	s������K�K���V�$����7��
��F��O���+�+�a�b�/�'�'��Q�/���4��1�S�b�6�{�Q����2���A��L��1�Q�q�6�{�T�)���1���L��1���,�.�.��c��t�}|�y|dkrd}n|dkr	d|dzz}nyddl}d|jjvr|d	z
}|d
zS)z%Return the name of the VC runtime dllNr�msvcrtr
zmsvcr%d�
rz_d.pyd�d�.dll)r�importlib.machinery�	machinery�EXTENSION_SUFFIXES)r�clibname�	importlibs   r�find_msvcrtr&"sd��$�&���?���a�<��H�
��]� �G�b�L�1�H��	#��y�*�*�=�=�=���O�H����rc��|dvr
t�Stjdjtj�D]�}tj
j
||�}tj
j|�r|cS|j�jd�r�f|dz}tj
j|�s��|cSy)N)�c�m�PATHr )
r&�os�environr�pathsep�path�join�isfile�lower�endswith)�name�	directory�fnames   r�find_libraryr67s����:���=� ����F�+�1�1�"�*�*�=�I��G�G�L�L��D�1�E��w�w�~�~�e�$����{�{�}�%�%�f�-���F�N�E��w�w�~�~�e�$���>�r�posix�darwin)�	dyld_findc�j�d|zd|z|�d|��g}|D]}	t|�cSy#t$rY�wxYw)Nzlib%s.dylibz%s.dylibz.framework/)�
_dyld_find�
ValueError)r3�possibles  rr6r6HsV��!�D�(���%�)-�t�4�6���D�
�!�$�'�'��
���
��
�s�
&�	2�2�aix)r6c��d}	t|d�5}|jd�|k(cddd�S#1swYyxYw#t$rYywxYw)z,Return True if the given file is an ELF filesELF�br�NF)�open�read�FileNotFoundError)�filename�
elf_header�thefiles   r�_is_elfrH`sE���
�	��h��%���|�|�A��*�4�&�%�%�� �	��	�s#�:�.�	:�7�:�:�	A�Ac��tjdtj|�z�}t	j
d�}|st	j
d�}|syt
j�}	|dd|jd|zg}ttj�}d|d<d|d	<	tj|tjtj|�
�}|5|j$j'�}ddd�	|j!�tj(|�}|sy|D]$}	t+|	�s�tj,|	�cSy#t$r#Y	|j!�y#t"$rYywxYwwxYw#1swY��xYw#t"$rY��wxYw#	|j!�w#t"$rYwwxYwxYw)N�[^\(\)\s]*lib%s\.[^\(\)\s]*�gcc�ccz-Wl,-t�-oz-l�C�LC_ALL�LANG��stdout�stderr�env)r+�fsencode�re�escape�shutil�which�tempfile�NamedTemporaryFiler3�dictr,�
subprocess�Popen�PIPE�STDOUT�OSError�closerDrRrC�findallrH�fsdecode)
r3�expr�
c_compiler�temp�argsrT�proc�trace�res�files
          r�_findLib_gccrmis���
�{�{�9�B�I�I�d�O�K�L���\�\�%�(�
�����d�+�J����*�*�,��	���$��	�	�4�$�;�G�D��r�z�z�"�C��C��M��C��K�
�!�'�'��/9���/9�/@�/@�,/�1������(�(�*���
��
�
��
�j�j��u�%�����D��4�=���;�;�t�$�$�
���
��
��
�
���$�
��
��
�����
%�
��
��
��
�
���$�
��
�s��07F �(5E�F �F�:F �F�	F�F �!E2�2	E>�=E>�F�F �F�
F �	F�F� G�"F3�2G�3	F?�<G�>F?�?G�sunos5c�r�|sy	tjdd|ftjtj��}|5|j
j
�}ddd�tjd�}|sytj|jd��S#t$rYywxYw#1swY�UxYw)Nz/usr/ccs/bin/dumpz-Lpv�rRrSs\[.*\]\sSONAME\s+([^\s]+)r)r]r^r_�DEVNULLrarRrCrV�searchr+rd�group)�fri�datarks    r�_get_sonamerv�s�����
�!�'�'�)<�f�a�(H�/9���/9�/A�/A�C��
��{�{�'�'�)����)�)�9�4�@�C����;�;�s�y�y��|�,�,���
��
����s�7B�B-�	B*�)B*�-B6c��|sytjd�}|sy	tj|ddd|ftjtj
��}|5|jj�}ddd�tjd�}|sytj|jd��S#t$rYywxYw#1swY�UxYw)N�objdump�-pz-jz.dynamicrps\sSONAME\s+([^\s]+)r)rXrYr]r^r_rqrarRrCrVrrr+rdrs)rtrxri�dumprks     rrvrv�s������l�l�9�-�G���
�!�'�'��$��j�!�(L�/9���/9�/A�/A�C��
��{�{�'�'�)����)�)�3�T�:�C����;�;�s�y�y��|�,�,���
��
����s�9B8�C�8	C�C�C)�freebsd�openbsd�	dragonflyc���|jd�}g}	|r,|jdt|j���|r�,|xst
jgS#t$rY� wxYw)N�.r)r�insertr�popr<r
�maxsize)�libname�parts�numss   r�_num_versionr��sb���M�M�$�'�E��D�
���K�K��3�u�y�y�{�#3�4���(�C�K�K�=�(���
��
�s�-A�	A$�#A$c�
�tj|�}d|�d|�d�}tj|�}	t	j
dtjtj��}|5|jj�}ddd�tj|�}|stt|��S|jt��tj |d�S#1swY�cxYw#t$rd}Y�swxYw)	Nz:-lz\.\S+ => \S*/(libz\.\S+))�/sbin/ldconfigz-rrpr)�keyr)rVrWr+rUr]r^r_rqrRrCrarcrvrm�sortr�rd)r3�enamererirurks      rr6r6�s����I�I�d�O�E�8=�u�E�D��;�;�t�$�D�
.�!�'�'�(@�/9���/9�/A�/A�C����;�;�+�+�-�D���*�*�T�4�(�C��"�<��#5�6�6��H�H��H�&��;�;�s�2�w�'�'��T���
���
�s�4C4�+C(�(C1�4D�Dc��tjjd�syttj�}d|d<|rd}nd}d}	tj|t
jt
j|��}|5|jD]J}|j�}|jd�s�%tj|�j�d}�L	ddd�|sy|jd	�D]H}tjj|d
|z�}tjj|�s�F|cSy#t$rYywxYw#1swY�xxYw)N�
/usr/bin/crlerNrO)r��-64)r�rQsDefault Library Path (ELF):rA�:zlib%s.so)r+r.�existsr\r,r]r^r_rqrarR�strip�
startswithrdrr/)	r3�is64rTrh�pathsri�line�dir�libfiles	         r�
_findLib_crler��s���7�7�>�>�/�2���r�z�z�"�C��C��M��/��)���E�
�!�'�'��/9���/9�/A�/A�,/�1��� �K�K�D��:�:�<�D����'E�F� "���D� 1� 7� 7� 9�!� <��(�����{�{�3�'���'�'�,�,�s�J��,=�>���7�7�>�>�'�*�"�N�(�
��!�
��
����s$�	5E�1E�2(E�	E�E�Ec�F�tt||�xst|��S�N)rvr�rm)r3r�s  rr6r6s���}�T�4�8�N�L��<N�O�Orc	���ddl}|jd�dk(r"tj�jdz}n!tj�jdz}dddddd	�}|j|d
�}d}tj|tj|�|fz�}	tjdd
gtjtjtjddd���5}tj||jj��}|r-tj |j#d��cddd�S	ddd�y#1swYyxYw#t$$rYywxYw)Nr�lrAz-32r�zlibc6,x86-64zlibc6,64bitzlibc6,IA-64)z	x86_64-64zppc64-64z
sparc64-64zs390x-64zia64-64�libc6z\s+(lib%s\.[^\s]+)\s+\(%sr�ryrN)rOrP)�stdinrSrRrTr)�struct�calcsizer+�uname�machine�getrUrVrWr]r^rqr_rrrRrCrdrsra)r3r�r��mach_map�abi_type�regex�prks        r�_findSoname_ldconfigr�s=������s�#�q�(��(�(�*�,�,�u�4���(�(�*�,�,�u�4��+�)�+�)�(��H� �|�|�G�W�5�H�1�E��K�K�����4��(�(C� C�D�E�

��%�%�'7��&>�,6�,>�,>�-7�-?�-?�-7�_�_�58�#�*F�	H�LM��)�)�E�1�8�8�=�=�?�;�C��!�{�{�3�9�9�Q�<�8�H�H��
H�H�H���
��
�s8�&A	E#�/AE�	E#�E#�E �E#� E#�#	E/�.E/c�x�dtj|�z}ddg}tjj	d�}|r)|jd�D]}|j
d|g��|j
dtjd|zg�d}	tj|tjtjd	�
�}|j�\}}tj|tj|��}	|	D]$}
t|
�s�tj|
�cS	|S#t$rY|SwxYw)NrJ�ldz-t�LD_LIBRARY_PATHr�z-LrMz-l%sT)rRrS�universal_newlines)rVrWr+r,r�r�extend�devnullr]r^r_�communicatercrdrH�	Exception)r3re�cmd�libpathr�resultr��out�_rkrls           r�_findLib_ldr�/s��1�B�I�I�d�O�C�D���,�C��j�j�n�n�%6�7�G�� ���s�+�A��J�J��a�y�)�,��J�J��b�j�j�&�4�-�8�9��F�
��$�$�S����,6�O�O�8<�>��������Q��j�j��r�{�{�3�'7�8���D�#�4�=� ��;�;�t�,�,�
 ��M���
���M�
�s�BD,�(D,�,	D9�8D9c�p�t|�xs*tt|��xstt|��Sr�)r�rvrmr�)r3s rr6r6Js6��'��-�U��|�D�1�2�U�6A�+�d�BS�6T�
Urc��ddlm}tjdk(rCt	|j
�t	|j
d��t	td��tjdk(�rdt	td��t	td��t	td��tjd	k(rit	|jd
��t	|jd��t	|jd��t	|jd
��ytjjd��rCddlm}tjdkrot	d|dtj����t	d|jd����t	td��t	|jd��n@t	d|dtj����t	d|jd����t	dtd����t	d|jtd�����t	dtd����t	d|jtd�����yt	|jd��t	|jd��t	td��yy)Nr)�cdllrrr7r)r(�bz2r8z
libm.dylibzlibcrypto.dylibzlibSystem.dylibzSystem.framework/Systemr>)�CDLLlz"Using CDLL(name, os.RTLD_MEMBER): z
libc.a(shr.o)zUsing cdll.LoadLibrary(): �rpmz	librpm.sozlibc.a(shr_64.o)z	crypt	:: �cryptz
crypto	:: �cryptozlibm.sozlibcrypt.so)�ctypesr�r+r3�printr�loadr6r
�platform�LoadLibraryr�r�r��RTLD_MEMBER)r�r�s  r�testr�Rs%���	�w�w�$��
�d�k�k��
�d�i�i��!�"�
�l�8�$�%�	�w�w�'��
�l�3�� �
�l�3�� �
�l�5�!�"��<�<�8�#��$�"�"�<�0�1��$�"�"�#4�5�6��$�"�"�#4�5�6��$�"�"�#<�=�>�
�\�\�
$�
$�U�
+�#��{�{�U�"��:�4��QS�Q_�Q_�;`�:a�b�c��2�4�3C�3C�O�3T�2U�V�W��l�5�)�*��d�&�&�{�3�4��:�4�@R�TV�Tb�Tb�;c�:d�e�f��2�4�3C�3C�DV�3W�2X�Y�Z��J�|�G�4�5�6�7��J�t�/�/��W�0E�F�G�H�I��K��X� 6�7�8�9��K�� 0� 0��h�1G� H�I�J�K��$�"�"�9�-�.��$�"�"�=�1�2��,�w�'�(�?r�__main__)F)r+rXr]r
r3rr&r6r��ctypes.macholib.dyldr9r;r��ctypes._aixrVrZrHrmrvr�r�r�r�r��__name__�rr�<module>r�s���	�
��
��7�7�d�?��2�*
��W�W���C�L�L�H�4�<�	�	�\�\���U�#�)��W�W�����/%�d�|�|�x��	-�"	-�,�|�|���B�C�		)�	(�*

����	!�"	�H	P�
	�<	�6	U�&)�P�z���F�r
Back to Directory File Manager