diff --git a/compiler-rt/test/lit.common.cfg.py b/compiler-rt/test/lit.common.cfg.py --- a/compiler-rt/test/lit.common.cfg.py +++ b/compiler-rt/test/lit.common.cfg.py @@ -325,6 +325,69 @@ )) ) + # Create features comparing the target OS against those listed below. + # Versions listed here can in the following forms: + # + # 1) (, ) + # 2) (, , ) + # + # NOTE: For form 1) `` is inferred to be `0`. + os_versions_to_compare_with = { + 'osx': [ + (10,15) + ], + 'ios': [ + (13,0) + ], + 'watchos': [ + (6,0) + ], + 'tvos': [ + (13,0) + ] + } + canonical_platform_name = config.apple_platform + if canonical_platform_name.endswith('sim'): + canonical_platform_name = canonical_platform_name[:-3] + if canonical_platform_name in os_versions_to_compare_with: + for version_tuple in os_versions_to_compare_with[canonical_platform_name]: + version_triplet = version_tuple + if len(version_triplet) == 2: + version_triplet = (version_tuple[0], version_tuple[1], 0) + assert len(version_triplet) == 3 + # >= feature + if apple_target_os_tuple >= version_triplet: + geq_feature = 'apple_{platform}_geq_{major}_{minor}_{patch}'.format( + platform=canonical_platform_name, + major=version_triplet[0], + minor=version_triplet[1], + patch=version_triplet[2]) + config.available_features.add(geq_feature) + # > feature + if apple_target_os_tuple > version_triplet: + gt_feature = 'apple_{platform}_gt_{major}_{minor}_{patch}'.format( + platform=canonical_platform_name, + major=version_triplet[0], + minor=version_triplet[1], + patch=version_triplet[2]) + config.available_features.add(gt_feature) + # <= feature + if apple_target_os_tuple <= version_triplet: + geq_feature = 'apple_{platform}_leq_{major}_{minor}_{patch}'.format( + platform=canonical_platform_name, + major=version_triplet[0], + minor=version_triplet[1], + patch=version_triplet[2]) + config.available_features.add(geq_feature) + # < feature + if apple_target_os_tuple < version_triplet: + geq_feature = 'apple_{platform}_lt_{major}_{minor}_{patch}'.format( + platform=canonical_platform_name, + major=version_triplet[0], + minor=version_triplet[1], + patch=version_triplet[2]) + config.available_features.add(geq_feature) + # Detect x86_64h try: output = subprocess.check_output(["sysctl", "hw.cpusubtype"])