Viewing File: /opt/alt/python-internal/lib64/python3.11/ctypes/__pycache__/util.cpython-311.pyc

�

!A?h�6����ddlZddlZddlZddlZejdkr
d�Zd�Zd�Zn�ejdkrejdkr
ddl	m
Zd	�Zn�ej�d
��rddl
mZnhejdkr]ddlZddlZd�Zd
�Zejdkrd�Znd�Zej�d��rd�Zd�Znejdkrd�Zdd�Zn	d�Zd�Zd�Zd�Zedkre��dSdS)�N�ntc�v�d}tj�|��}|dkrdS|t|��z}tj|d��dd��\}}t|dd���dz
}|dkr|dz
}t|d	d
���dz}|dkrd}|dkr||zSdS)
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      �8/opt/alt/python-internal/lib64/python3.11/ctypes/util.py�_get_build_versionr	s������K���V�$�$����7�7��1�
��F���O���+�a�b�b�/�'�'��Q�/�/���4��1�S�b�S�6�{�{�Q����2����A��L��1�Q�q�S�6�{�{�T�)���1����L��1����,�.�.��t�c��t��}|�dS|dkrd}n|dkr	d|dzz}ndSddl}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&"sy��$�&�&���?��4��a�<�<��H�H�
��]�]� �G�b�L�1�H�H��4�	#�"�"�"��y�*�=�=�=���O�H����rc��|dvrt��Stjd�tj��D]�}tj�||��}tj�|��r|cS|����	d��r�m|dz}tj�|��r|cS��dS)N)�c�m�PATHr )
r&�os�environr�pathsep�path�join�isfile�lower�endswith)�name�	directory�fnames   r�find_libraryr67s����:����=�=� ���F�+�1�1�"�*�=�=�	�	�I��G�L�L��D�1�1�E��w�~�~�e�$�$�
������{�{�}�}�%�%�f�-�-�
���F�N�E��w�~�~�e�$�$�
�����
��tr�posix�darwin)�	dyld_findc�r�d|zd|z|�d|��g}|D]#}	t|��cS#t$rY� wxYwdS)Nzlib%s.dylibz%s.dylibz.framework/)�
_dyld_find�
ValueError)r3�possibles  rr6r6Hsv��!�D�(���%�)-���t�t�4�6���	�	�D�
�!�$�'�'�'�'�'���
�
�
���
�����ts�'�
4�4�aix)r6c��d}	t|d��5}|�d��|kcddd��S#1swxYwYdS#t$rYdSwxYw)z,Return True if the given file is an ELF filesELF�br�NF)�open�read�FileNotFoundError)�filename�
elf_header�thefiles   r�_is_elfrH`s����
�	��h��%�%�
5���|�|�A���*�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�
5�
5�� �	�	�	��5�5�	���s.�A�:�A�>�A�>�A�
A�Ac��tjdtj|��z��}t	jd��}|st	jd��}|sdSt
j��}	|dd|jd|zg}ttj
��}d|d<d|d	<	tj|tj
tj|�
��}n7#t$r*Y	|���dS#t"$rYdSwxYwwxYw|5|j���}ddd��n#1swxYwY	|���n:#t"$rYn.wxYw#	|���w#t"$rYwwxYwxYwtj||��}|sdS|D]'}	t+|	��s�tj|	��cSdS)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_gccrmisf��
�{�9�B�I�d�O�O�K�L�L���\�%�(�(�
��	,���d�+�+�J��	��4��*�,�,��	���$��	�4�$�;�G�D��r�z�"�"�C��C��M��C��K�
�!�'��/9��/9�/@�,/�1�1�1�����
�
�
��
��
�
�������$�
�
�
����
����
�����
+�
+���(�(�*�*��
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�
��
�
������$�
�
�
���
�����
��
�
������$�
�
�
���
��������j��u�%�%���	��4��	%�	%�D��4�=�=�
���;�t�$�$�$�$�$�
	%�	%s��,2E�,C�E�
D�E�C.�.
C<�;C<�?D�E�D+�E�+D/�/E�2D/�3E�7E�
E�E�F�E3�2F�3
F�=F�?F�F�sunos5c�r�|sdS	tjdd|ftjtj���}n#t$rYdSwxYw|5|j���}ddd��n#1swxYwYtjd|��}|sdStj
|�d����S)Nz/usr/ccs/bin/dumpz-Lpv�rRrSs\[.*\]\sSONAME\s+([^\s]+)r)r]r^r_�DEVNULLrarRrCrV�searchr+rd�group)�fri�datarks    r�_get_sonamerv�s���
��t�
�!�'�)<�f�a�(H�/9��/9�/A�C�C�C�����
�
�
��t�t�
�����
*�
*��{�'�'�)�)��
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��)�9�4�@�@�C��
��t��;�s�y�y��|�|�,�,�,s!�.5�
A�A�A.�.A2�5A2c��|sdStjd��}|sdS	tj|ddd|ftjtj���}n#t$rYdSwxYw|5|j���}ddd��n#1swxYwYtj
d|��}|sdStj|�
d����S)N�objdump�-pz-jz.dynamicrps\sSONAME\s+([^\s]+)r)rXrYr]r^r_rqrarRrCrVrrr+rdrs)rtrxri�dumprks     rrvrv�s/���
��t��l�9�-�-�G��
��t�
�!�'��$��j�!�(L�/9��/9�/A�C�C�C�����
�
�
��t�t�
�����
*�
*��{�'�'�)�)��
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��)�3�T�:�:�C��
��t��;�s�y�y��|�|�,�,�,s#�0A�
A�A�"B�B�B)�freebsd�openbsd�	dragonflyc���|�d��}g}	|r7|�dt|�������|�7n#t$rYnwxYw|pt
jgS)N�.r)r�insertr�popr<r
�maxsize)�libname�parts�numss   r�_num_versionr��s����M�M�$�'�'�E��D�
��5��K�K��3�u�y�y�{�{�#3�#3�4�4�4��5����
�
�
���
�����(�C�K�=�(s�9A�
A �A c��tj|��}d|�d|�d�}tj|��}	t	jdtjtj���}|5|j�	��}ddd��n#1swxYwYn#t$rd}YnwxYwtj||��}|stt|����S|�t���tj|d��S)	Nz:-lz\.\S+ => \S*/(libz\.\S+))�/sbin/ldconfigz-rrpr)�keyr)rVrWr+rUr]r^r_rqrRrCrarcrvrm�sortr�rd)r3�enamererirurks      rr6r6�sO���I�d�O�O�E�E�8=���u�u�u�E�D��;�t�$�$�D�
.�!�'�(@�/9��/9�/A�C�C�C���.�.��;�+�+�-�-�D�.�.�.�.�.�.�.�.�.�.�.����.�.�.�.����
�
�
�����
�����*�T�4�(�(�C��
7�"�<��#5�#5�6�6�6��H�H��H�&�&�&��;�s�2�w�'�'�'s#�+B� B�B
�
B
�B!� B!c���tj�d��sdSttj��}d|d<|rd}nd}d}	tj|t
jt
j|���}n#t$rYdSwxYw|5|j
D]W}|���}|�d��r,tj
|�����d}�X	ddd��n#1swxYwY|sdS|�d	��D]H}tj�|d
|z��}tj�|��r|cS�IdS)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�>�>�/�2�2�
��t��r�z�"�"�C��C��M��
*�/���)���E�
�!�'��/9��/9�/A�,/�1�1�1�����
�
�
��t�t�
�����
=�
=� �K�=�=�D��:�:�<�<�D����'E�F�F�=� "��D� 1� 1� 7� 7� 9� 9�!� <���=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��
��t��{�{�3�'�'�
#�
#���'�,�,�s�J��,=�>�>���7�>�>�'�*�*�#�"�N�N�N�#��4s%�
,A7�7
B�B�
A C7�7C;�>C;Fc�Z�tt||��pt|����S�N)rvr�rm)r3r�s  rr6r6s'���}�T�4�8�8�N�L��<N�<N�O�O�Orc	���ddl}|�d��dkrtj��jdz}ntj��jdz}dddddd	�}|�|d
��}d}tj|tj|��|fz��}	tj
dd
gtjtjtjddd����5}tj
||j�����}|r3tj|�d����cddd��S	ddd��dS#1swxYwYdS#t$$rYdSwxYw)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����M�M�M����s�#�#�q�(�(��(�*�*�,�u�4����(�*�*�,�u�4��+�)�+�)�(���H� �|�|�G�W�5�5�H�1�E��K����4���(�(C� C�D�D�E�

��%�'7��&>�,6�,>�-7�-?�-7�_�58�#�*F�*F�	H�H�H�9�LM��)�E�1�8�=�=�?�?�;�;�C��9�!�{�3�9�9�Q�<�<�8�8�9�9�9�9�9�9�9�9�9�
9�9�9�9�9�9�9�9�9�9�9�9����9�9�9�9�9�9���
�
�
����
���s=�!<E�AE
�2E�E�
E�E�E�E�
E(�'E(c�v�dtj|��z}ddg}tj�d��}|r/|�d��D]}|�d|g���|�dtjd|zg��d}	tj	|tj
tj
d	�
��}|���\}}tj|tj
|����}	|	D]'}
t|
��s�tj
|
��cSn#t$rYnwxYw|S)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�/sM��1�B�I�d�O�O�C�D���,�C��j�n�n�%6�7�7�G��
*� ���s�+�+�*�*�A��J�J��a�y�)�)�)�)��J�J��b�j�&�4�-�8�9�9�9��F�
��$�S���,6�O�8<�>�>�>���������Q��j��r�{�3�'7�'7�8�8���-�-�D�#�4�=�=�!� ��;�t�,�,�,�,�,�
-���
�
�
���
�����Ms�BD)�)
D6�5D6c��t|��p7tt|����ptt|����Sr�)r�rvrmr�)r3s rr6r6JsE��'��-�-�U��|�D�1�1�2�2�U�6A�+�d�BS�BS�6T�6T�
Urc��ddlm}tjdkrRt	|j��t	|�d����t	td����tjdk�r�t	td����t	td����t	td����tj	d	kr�t	|�
d
����t	|�
d����t	|�
d����t	|�
d
����dStj	�d���r�ddlm}tj
dkr�t	d|dtj������t	d|�
d������t	td����t	|�
d����nKt	d|dtj������t	d|�
d������t	dtd������t	d|�
td��������t	dtd������t	d|�
td��������dSt	|�
d����t	|�
d����t	td����dSdS)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�Rs6��������	�w�$���
�d�k����
�d�i�i��!�!�"�"�"�
�l�8�$�$�%�%�%�	�w�'���
�l�3��� � � �
�l�3��� � � �
�l�5�!�!�"�"�"��<�8�#�#��$�"�"�<�0�0�1�1�1��$�"�"�#4�5�5�6�6�6��$�"�"�#4�5�5�6�6�6��$�"�"�#<�=�=�>�>�>�>�>�
�\�
$�
$�U�
+�
+�	)�#�#�#�#�#�#��{�U�"�"��b�4�4��QS�Q_�;`�;`�b�b�c�c�c��V�4�3C�3C�O�3T�3T�V�V�W�W�W��l�5�)�)�*�*�*��d�&�&�{�3�3�4�4�4�4��e�4�4�@R�TV�Tb�;c�;c�e�e�f�f�f��Y�4�3C�3C�DV�3W�3W�Y�Y�Z�Z�Z��6�|�G�4�4�6�6�7�7�7��H�t�/�/��W�0E�0E�F�F�H�H�I�I�I��8��X� 6� 6�8�8�9�9�9��J�� 0� 0��h�1G�1G� H� H�J�J�K�K�K�K�K��$�"�"�9�-�-�.�.�.��$�"�"�=�1�1�2�2�2��,�w�'�'�(�(�(�(�(�?�r�__main__)F)r+rXr]r
r3rr&r6r��ctypes.macholib.dyldr9r;r��ctypes._aixrVrZrHrmrvr�r�r�r�r��__name__�rr�<module>r�s6��	�	�	�	�
�
�
�
�����
�
�
�
��7�d�?�?����2���*
�
�
�
��W����C�L�H�4�4�<�<�<�<�<�<�	�	�	�	�	�\���U�#�#�zU�)�(�(�(�(�(�(��W���������������/%�/%�/%�d�|�x���	-�	-�	-�	-�"	-�	-�	-�,�|���B�C�C�IU�		)�		)�		)�	(�	(�	(�	(�*

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