Merge "Merge cherrypicks of [1892798, 2094903, 2095084] into ndk-release-r23." into ndk-release-r23
diff --git a/build/core/default-build-commands.mk b/build/core/default-build-commands.mk
index e9687f8..6963e66 100644
--- a/build/core/default-build-commands.mk
+++ b/build/core/default-build-commands.mk
@@ -83,7 +83,6 @@
 TARGET_LIBATOMIC = -latomic
 TARGET_LDLIBS := -lc -lm
 
-TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TAG64)
 LLVM_TOOLCHAIN_PREFIX := $(TOOLCHAIN_ROOT)/bin/
 
 # IMPORTANT: The following definitions must use lazy assignment because
diff --git a/build/core/init.mk b/build/core/init.mk
index 9c0c149..a897f77 100644
--- a/build/core/init.mk
+++ b/build/core/init.mk
@@ -278,6 +278,7 @@
 HOST_PREBUILT := $(strip $(wildcard $(HOST_TOOLS_ROOT)/bin))
 HOST_MAKE := $(strip $(NDK_HOST_MAKE))
 HOST_PYTHON := $(strip $(NDK_HOST_PYTHON))
+TOOLCHAIN_ROOT := $(NDK_ROOT)/toolchains/llvm/prebuilt/$(HOST_TAG64)
 ifdef HOST_PREBUILT
     $(call ndk_log,Host tools prebuilt directory: $(HOST_PREBUILT))
     # The windows prebuilt binaries are for ndk-build.cmd
@@ -287,7 +288,11 @@
             HOST_MAKE := $(wildcard $(HOST_PREBUILT)/make$(HOST_EXEEXT))
         endif
        ifndef HOST_PYTHON
-            HOST_PYTHON := $(wildcard $(HOST_PREBUILT)/python$(HOST_EXEEXT))
+            ifeq ($(HOST_OS),windows)
+                HOST_PYTHON := $(wildcard $(TOOLCHAIN_ROOT)/python3/python$(HOST_EXEEXT))
+            else
+                HOST_PYTHON := $(wildcard $(TOOLCHAIN_ROOT)/python3/bin/python3$(HOST_EXEEXT))
+            endif
         endif
     endif
 else
diff --git a/docs/changelogs/Changelog-r23.md b/docs/changelogs/Changelog-r23.md
index db6743a..622b897 100644
--- a/docs/changelogs/Changelog-r23.md
+++ b/docs/changelogs/Changelog-r23.md
@@ -52,6 +52,7 @@
   non-legacy toolchain file.
 * [Issue 1618]: Fix behavior of `ANDROID_CPP_FEATURES` with the new toolchain
   file.
+* [Issue 1634]: Fixed the build rule for the libshaderc_combined target.
 * [Issue 1656]: The new CMake toolchain file now ignores `ANDROID_ARM_MODE` when
   it is passed for ABIs other than armeabi-v7a like the legacy toolchain file
   did. With CMake 3.22 it is an error to set `CMAKE_ANDROID_ARM_MODE` for other
@@ -72,6 +73,7 @@
 [Issue 1610]: https://github.com/android/ndk/issues/1610
 [Issue 1618]: https://github.com/android/ndk/issues/1618
 [Issue 1619]: https://github.com/android/ndk/issues/1619
+[Issue 1634]: https://github.com/android/ndk/issues/1634
 [Issue 1645]: https://github.com/android/ndk/issues/1645
 [Issue 1656]: https://github.com/android/ndk/issues/1656
 [Issue 1672]: https://github.com/android/ndk/issues/1672
diff --git a/ndk/config.py b/ndk/config.py
index 6066c5a..e1186fe 100644
--- a/ndk/config.py
+++ b/ndk/config.py
@@ -2,7 +2,7 @@
 
 
 major = 23
-hotfix = 1
+hotfix = 2
 hotfix_str = chr(ord('a') + hotfix) if hotfix else ''
 beta = 0
 beta_str = '-beta{}'.format(beta) if beta > 0 else ''