Your IP : 216.73.216.213
�
e f� � @ s� d Z d d l Z d d l Z d e j d d � d Z d e j d e j d d Z d Z e d d
d � Z d d � Z d Z f Z
e
d d � Z d d � Z e
d k r� e � n d S)aE nm2def.py
Helpers to extract symbols from Unix libs and auto-generate
Windows definition files from them. Depends on nm(1). Tested
on Linux and Solaris only (-p option to nm is for Solaris only).
By Marc-Andre Lemburg, Aug 1998.
Additional notes: the output of nm is supposed to look like this:
acceler.o:
000001fd T PyGrammar_AddAccelerators
U PyGrammar_FindDFA
00000237 T PyGrammar_RemoveAccelerators
U _IO_stderr_
U exit
U fprintf
U free
U malloc
U printf
grammar1.o:
00000000 T PyGrammar_FindDFA
00000034 T PyGrammar_LabelRepr
U _PyParser_TokenNames
U abort
U printf
U sprintf
...
Even if this isn't the default output of your nm, there is generally an
option to produce this format (since it is the original v7 Unix format).
� NZ libpython� z.a�Python� z.dllznm -p -g %s�T�C�Dc C s� t j t | � j � } d d � | D� } i } x� | D] } t | � d k s9 d | k rc q9 n | j � } t | � d k r� q9 n | \ } } } | | k r� q9 n | | f | | <q9 W| S)Nc S s g | ] } | j � � q S� )�strip)�.0�sr r �9/opt/alt/python34/lib64/python3.4/Tools/scripts/nm2def.py�
<listcomp>. s zsymbols.<locals>.<listcomp>r �:r )�os�popen�NM� readlines�len�split) �lib�types�lines�symbols�line�itemsZaddress�type�namer r r r + s
r c C s� g } g } xQ | j � D]C \ } \ } } | d k rK | j d | � q | j d | � q W| j � | j d � | j � d j | � d d j | � S)Nr r � � z DATA
�
)r r )r �append�sort�join)r �data�coder Zaddrr r r r �export_list<