o
9j @ sp d Z ddlZddlZzddlZW n
ey ddlZY nw dd Zdd Zdd Zd d
Z dd Z
d
d ZdS )zShared AIX support functions. Nc C s0 t jdkrdnd}d| d | d | d ||S )Ni @ zaix-{:1x}{:1d}{:02d}-{:04d}-{}r )sysmaxsizeformat)vrtlbd_sz r #/usr/lib/python3.10/_aix_support.py_aix_tag s r c C s2 | dd d \}}}t|d t|t|gS )N. )splitint)vrmfvrtlr r r
_aix_vrtl s r c C s> t g d} | d} | d} t| d t| d fS )z
Return a Tuple[str, int] e.g., ['7.1.4.34', 1806]
The fileset bos.mp64 is the AIX kernel. It's VRMF and builddate
reflect the current ABI levels of the runtime environment.
)z/usr/bin/lslppz-Lqczbos.mp64zutf-8:r r )
subprocesscheck_outputdecodestripr strr )outr r r
_aix_bosmp64 s
r c C s t \} }tt| |S )a
AIX filesets are identified by four decimal values: V.R.M.F.
V (version) and R (release) can be retreived using ``uname``
Since 2007, starting with AIX 5.3 TL7, the M value has been
included with the fileset bos.mp64 and represents the Technology
Level (TL) of AIX. The F (Fix) value also increases, but is not
relevant for comparing releases and binary compatibility.
For binary compatibility the so-called builddate is needed.
Again, the builddate of an AIX release is associated with bos.mp64.
AIX ABI compatibility is described as guaranteed at: https://www.ibm.com/ support/knowledgecenter/en/ssw_aix_72/install/binary_compatability.html
For pep425 purposes the AIX platform tag becomes:
"aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(v, r, tl, builddate, bitsize)
e.g., "aix-6107-1415-32" for AIX 6.1 TL7 bd 1415, 32-bit
and, "aix-6107-1415-64" for AIX 6.1 TL7 bd 1415, 64-bit
)r r r )r r
r r r
aix_platform, s
r! c C s t d} | stdt| dS )NBUILD_GNU_TYPEzBUILD_GNU_TYPE is not defined)r ) sysconfigget_config_var
ValueErrorr )gnu_typer r r
_aix_bgtD s
r' c C sD t d} zt| } W n ttfy td| w tt | S )zD
Return the platform_tag of the system Python was built on.
AIX_BUILDDATEz)AIX_BUILDDATE is not defined or invalid: )r# r$ r r% TypeErrorr r' )
build_dater r r
aix_buildtagL s
r+ )__doc__r r# r ImportError_bootsubprocessr r r r! r' r+ r r r r