@@ -21,7 +21,7 @@ load(":full_version.bzl", "full_version")
2121load (":python_register_toolchains.bzl" , "python_register_toolchains" )
2222load (":pythons_hub.bzl" , "hub_repo" )
2323load (":repo_utils.bzl" , "repo_utils" )
24- load (":toolchains_repo.bzl" , "host_toolchain" , "multi_toolchain_aliases" )
24+ load (":toolchains_repo.bzl" , "host_toolchain" , "multi_toolchain_aliases" , "sorted_host_platforms" )
2525load (":util.bzl" , "IS_BAZEL_6_4_OR_HIGHER" )
2626load (":version.bzl" , "version" )
2727
@@ -298,9 +298,8 @@ def _python_impl(module_ctx):
298298 _internal_bzlmod_toolchain_call = True ,
299299 ** kwargs
300300 )
301- host_platforms = []
302- host_os_names = {}
303- host_archs = {}
301+
302+ host_platforms = {}
304303 for repo_name , (platform_name , platform_info ) in register_result .impl_repos .items ():
305304 toolchain_impls .append (struct (
306305 # str: The base name to use for the toolchain() target
@@ -319,17 +318,21 @@ def _python_impl(module_ctx):
319318 set_python_version_constraint = is_last ,
320319 ))
321320 if _is_compatible_with_host (module_ctx , platform_info ):
322- host_key = str (len (host_platforms ))
323- host_platforms .append (platform_name )
324- host_os_names [host_key ] = platform_info .os_name
325- host_archs [host_key ] = platform_info .arch
321+ host_platforms [platform_name ] = platform_info
326322
323+ host_platforms = sorted_host_platforms (host_platforms )
327324 host_toolchain (
328325 name = toolchain_info .name + "_host" ,
329326 # NOTE: Order matters. The first found to be compatible is (usually) used.
330- platforms = host_platforms ,
331- os_names = host_os_names ,
332- archs = host_archs ,
327+ platforms = host_platforms .keys (),
328+ os_names = {
329+ str (i ): platform_info .os_name
330+ for i , platform_info in enumerate (host_platforms .values ())
331+ },
332+ archs = {
333+ str (i ): platform_info .arch
334+ for i , platform_info in enumerate (host_platforms .values ())
335+ },
333336 python_version = full_python_version ,
334337 )
335338
0 commit comments