diff --git a/utils/build-presets.ini b/utils/build-presets.ini index 9eaa76a841a99..bce0043209899 100644 --- a/utils/build-presets.ini +++ b/utils/build-presets.ini @@ -2419,21 +2419,25 @@ swift-install-components=autolink-driver;compiler;clang-builtin-headers;stdlib;s mixin-preset=source_compat_suite_macos_base debug assertions +cross-compile-hosts=macosx-arm64 [preset: source_compat_suite_macos_RA] mixin-preset=source_compat_suite_macos_base release assertions +cross-compile-hosts=macosx-arm64 [preset: source_compat_suite_macos_R] mixin-preset=source_compat_suite_macos_base release no-assertions +cross-compile-hosts=macosx-arm64 [preset: source_compat_suite_macos_D] mixin-preset=source_compat_suite_macos_base debug no-assertions +cross-compile-hosts=macosx-arm64 [preset: source_compat_suite_linux_DA] mixin-preset=source_compat_suite_linux_base diff --git a/utils/build-script b/utils/build-script index 15a84b54ada09..fb87c118b017a 100755 --- a/utils/build-script +++ b/utils/build-script @@ -997,6 +997,9 @@ class BuildScriptInvocation(object): for product_class in impl_product_classes: self._execute_install_action(host_target, product_class) + # Lipo... + self._execute_merged_host_lipo_action() + # Non-build-script-impl products... # Note: currently only supports building for the host. for host_target in [self.args.host_target]: @@ -1036,9 +1039,6 @@ class BuildScriptInvocation(object): for host_target in all_hosts: self._execute_package_action(host_target) - # Lipo... - self._execute_merged_host_lipo_action() - def _execute_build_action(self, host_target, product_class): action_name = "{}-{}-build".format(host_target.name, product_class.product_name()) diff --git a/utils/recursive-lipo b/utils/recursive-lipo index 056b5f3576ef6..df3d302e651fd 100755 --- a/utils/recursive-lipo +++ b/utils/recursive-lipo @@ -63,6 +63,9 @@ def merge_lipo_files(src_root_dirs, file_list, copy_verbatim_subpaths, if all([os.path.islink(item) for item in file_paths]): # It's a symlink in all found instances, copy the link. print("-- Creating symlink %s" % dest_path) + # Remove symlink if it already exists + if os.path.islink(dest_path): + os.remove(dest_path) os.symlink(os.readlink(file_paths[0]), dest_path) elif all([os.path.isdir(item) for item in file_paths]): # It's a subdir in all found instances.