On Dec 22, 2021, at 09:23, Bruno Haible wrote: > Despite > -DMAC_OS_X_VERSION_MAX_ALLOWED=1090 -DMAC_OS_X_VERSION_MIN_REQUIRED=1040 > it produced code that would *not* run on Mac OS X 10.4.
Uh yeah you can't do that at all. You can check the values of MAC_OS_X_VERSION_MAX_ALLOWED and MAC_OS_X_VERSION_MIN_REQUIRED in your code but you don't set them like that on the command line. MAC_OS_X_VERSION_MAX_ALLOWED is set for you based on what version of the SDK you are using. For example if you are using the 10.9 SDK, MAC_OS_X_VERSION_MAX_ALLOWED will be 1090. If you are using the 10.10 SDK, MAC_OS_X_VERSION_MAX_ALLOWED will be 101000. On some SDKs you might see the minor version number included as well (e.g. 1058 on the 10.5.8 SDK) so write comparisons using >= or <. MAC_OS_X_VERSION_MIN_REQUIRED is set for you based on the default for the OS, or the MACOSX_DEPLOYMENT_TARGET environment variable if set, or the -mmacosx-version-min compiler flag or the -macosx_version_min linker flag if present. For example, if you have set MACOSX_DEPLOYMENT_TARGET=10.12 or if you have -mmacosx-version-min=10.12 in CFLAGS or if you have -macosx_version_min 10.12 in LDFLAGS or if you are building on a system running macOS 10.12, then MAC_OS_X_VERSION_MIN_REQUIRED will be 101200. The default deployment target (when no flags or environment variables are set) on non-PowerPC CPUs, and as of 10.5 with PowerPC CPUs, is the major OS version. The default on PowerPC CPUs running 10.1 thru 10.4 is 10.1.