o
0i @ 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)ZvrtlbdZ_sz r
3/opt/alt/python310/lib64/python3.10/_aix_support.py_aix_tag s r c C s2 | dd d \}}}t|d t|t|gS )N. )splitint)vrmfvrZtlr
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 )
subprocessZcheck_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 )NZBUILD_GNU_TYPEzBUILD_GNU_TYPE is not defined)r ) sysconfigget_config_var
ValueErrorr )Zgnu_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.
Z
AIX_BUILDDATEz)AIX_BUILDDATE is not defined or invalid: )r r r r TypeErrorr r! )Z
build_dater
r
r aix_buildtagL s
r# )__doc__r r r ImportErrorZ_bootsubprocessr r r r r! r# r
r
r
r