fixup! [K/N] Use fingerprint for non-default stdlib cache
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheSupport.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheSupport.kt
index 51f5f1a..168d378 100644
--- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheSupport.kt
+++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CacheSupport.kt
@@ -125,6 +125,7 @@
                 allLibraries = allLibraries,
                 explicitCaches = if (ignoreCachedLibraries) emptyMap() else explicitCaches,
                 implicitCacheDirectories = if (ignoreCachedLibraries) emptyList() else implicitCacheDirectories,
+                systemCacheDirectory = systemCacheDirectory,
                 autoCacheDirectory = autoCacheDirectory,
                 autoCacheableFrom = if (ignoreCachedLibraries) emptyList() else autoCacheableFrom,
                 distribution = distribution,
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CachedLibraries.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CachedLibraries.kt
index 04ab54a..f694edb 100644
--- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CachedLibraries.kt
+++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CachedLibraries.kt
@@ -28,10 +28,11 @@
         allLibraries: List<KotlinLibrary>,
         explicitCaches: Map<KotlinLibrary, String>,
         implicitCacheDirectories: List<File>,
-        autoCacheDirectory: File,
-        autoCacheableFrom: List<File>,
-        distribution: Distribution,
-        runtimeNativeLibraries: List<String>,
+        private val systemCacheDirectory: File,
+        private val autoCacheDirectory: File,
+        private val autoCacheableFrom: List<File>,
+        private val distribution: Distribution,
+        private val runtimeNativeLibraries: List<String>,
 ) {
     enum class Kind { DYNAMIC, STATIC, HEADER }
 
@@ -178,6 +179,17 @@
                     .mapNotNull { it?.trySelectCacheFor(this) }
                     .firstOrNull()
 
+    private fun KotlinLibrary.tryAutoCache(): Cache? {
+        val libraryPath = libraryFile.canonicalPath
+        val baseCacheDirectory = when {
+            isNativeStdlib || isDefault -> systemCacheDirectory
+            autoCacheableFrom.any { libraryPath.startsWith(it.canonicalPath) } -> autoCacheDirectory
+            else -> return null
+        }
+        val dir = computeLibraryCacheDirectory(baseCacheDirectory, this, uniqueNameToLibrary, uniqueNameToHash, distribution, runtimeNativeLibraries)
+        return trySelectCacheAt { cacheName -> dir.child(cacheName) }
+    }
+
     private val allCaches: Map<KotlinLibrary, Cache> = allLibraries.mapNotNull { library ->
         val explicitPath = explicitCaches[library]
 
@@ -185,13 +197,8 @@
             File(explicitPath).trySelectCacheFor(library)
                     ?: error("No cache found for library ${library.libraryName} at $explicitPath")
         } else {
-            val libraryPath = library.libraryFile.canonicalPath
             library.trySelectCacheAt { cacheNameToImplicitDirMapping[it] }
-                    ?: autoCacheDirectory.takeIf { autoCacheableFrom.any { libraryPath.startsWith(it.canonicalPath) } }
-                            ?.let {
-                                val dir = computeLibraryCacheDirectory(it, library, uniqueNameToLibrary, uniqueNameToHash, distribution, runtimeNativeLibraries)
-                                library.trySelectCacheAt { cacheName -> dir.child(cacheName) }
-                            }
+                    ?: library.tryAutoCache()
         }
 
         cache?.let {