I know I started a reply. I hate phones (for replies)... On 03/08/2019 12:16, Ronald Oussoren via Distutils-SIG wrote:
For macOS GCC and clang generate compatible code, that’s not a problem. Win! for macOS!
For platform versions the situation is slightly more complicated, but it is in general possible to build on newer releases of macOS than you deploy on. However, this requires some support from the code you are building, such as not using APIs that aren’t available on the older version. That generally can cause issues with projects that use configure and can automatically pick up symbols available on the build platform.
The Linux setup might be more interesting for you in that regard. The “manylinux” project [1] specifies how to build wheels that work on multiple linux versions, regardless of the version of libc. In short this works by building with an older libc, to ensure that the wheels only use symbol versions that are available on all supported linux versions.
To an extent - support for a "manylinux" approach is "built-in" to AIX. In practice, AIX has traditionally been 'friendly' to applications coming in binary form AIX built on older versions. There have been two releases where it was announced - there are potential issues (when AIX 5.0 and AIX 5.1 came - 64-bit applications had to be re-compiled. and AIX 5.3 TL6 to AIX 5.3TL7 - some applications "broke" - so back around 1999-2000 and 2005-2006 time frames. With the introduction of AIX 6.1 TL0 (and, in parallel AIX 5.3 TL7) IBM AIX offered, rather assured - binary compatibility when they linked against shared libraries (such as libc, aka - the "stuff" in /usr/lib). Also specified - an application linked against AIX 7.2 TL3 libraries will not run on AIX 7.1 or earlier versions of AIX - actually, assume it will not run on AIX 7.2 TL2 or earlier). Starting with Python 3.8 - sys.platform() will just say "aix", just as sys.platform() has just said "linux" since, iirc Python 3.2. (FYI). So, I'll read up on "manylinux" to see what I can lean on (read 'borrow'). I will be grateful for feedback!
[1] https://github.com/pypa/manylinux <https://github.com/pypa/manylinux>
Ronald